不乱于心,不困于情。
不畏将来,不念过往。如此,安好。

对某bc代码的一次代码审计

路由分析:

在之前的文章中有写到对于自写框架的代码需要分析路由,这套代码路由就在index中:

其实这段代码光猜就能猜出来他的大概意思,分析过TP的朋友都知道就是:

http://127.0.0.1/控制器/方法

往下看会发现一个比较重要的地方:

这里用到了反射这个概念,其实在PHP中
反射并不常用,Java、C#中才是反射用到最多的地方。

什么是反射?

简单的来说就是你不需要实例化这个类你就能知道这个类的所有属性、方法并调用他们。

从上面的代码中我们可以看到,该代码只允许调用带有Final修饰符的方法。

我们看完方法调用后需要在看他的参数传递:

图片

这段代码所表达的意思就是:

http://www.baidu.com/控制器/方法/参数1/参数2

注意没有参数名,也就是说如果是方法接收参数我们可以直接通过这种方式去传递参数。

主动过滤:

图片

这里会把所有超全局变量中的值进行addslashes转义。

XSS1:

图片

为了方便各位看到漏洞核心代码我对一些代码进行了马赛克处理,新手在审计代码的时候主要的问题就是被绕的头晕。

目标从POST中获取了bankId、cardNo、subAddress然后直接插入了数据库

XSS2:

首先目标会从POST中获取到Name参数

然后将fullname放入到了pare数组中

最后插入数据库。

注入

我们之前说了代码有主动过滤,所以不能从GET\POST等超全局变量中取值那么我们之前分析的传参方式就显得异常重要了:

http://www.baidu.com/控制器/方法/参数1/参数2

这样的话是不走主动过滤的,如果在利用这个逻辑他代码安全性就变得异常低了起来。

类似的代码片段还有很多,我就不列出来了。

前台RCE:

文章来源:疯猫网络

赞(0) 打赏
未经允许不得转载:seo优化_前端开发_渗透技术 » 对某bc代码的一次代码审计

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏