新闻详情

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

发表时间:2021-05-19 12:45

路由分析:

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

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

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

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

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

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

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

什么是反射?

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

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

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

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

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

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

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

主动过滤:

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

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

XSS1:

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

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

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

XSS2:

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

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

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

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

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

最后插入数据库。

注入

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

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

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

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

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

前台RCE:

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


文章分类: Web安全
分享到: