代码审计小记 (一)
代码审计小记 (一)
0x00 入门
感觉代码审计是一项必须要掌握的技能,但真正的代码审计和ctf那样只看一个index.php还是有很大差别的。从别人的文章看起吧,下面是我参考的链接。
cms下载地址:
0x01 上手
一开始我只是大致浏览了一下整个cms,只知道这个cms之中存在sql注入漏洞。鉴于之前使用过大法师的神器zhe,这里直接上手开启自动审计。
自动审计完我就发现问题了,这可疑漏洞太多了。一百多个,我总不能一个一个看过去吧,那样效率太慢了。
后来想到一点,我应该考虑的是可控变量的位置,从前台找后台对应页面。
这几个页面才是我们跟进代码查看的重点。
0x02 漏洞代码
找到一个fun.inc.php页面,里面定义了一些安全防护函数。
如下:
在第二张图里,打ctf的经验告诉我,这个函数是对大小写敏感的。也就是说,他的这些关键字都可以大小写进行绕过。除了大小写绕过之外,由于他这里是直接替换为空的,所以我们还可以进行双写绕过,如: seleselectct => select
接下来很显然就是找哪里调用了这个函数的php页面。
114处...有点多好吧..不过,我们可以排除一些不必要的页面,比如管理员的后台php,以及一些管理员才能接触到的组件。
这个地方,这里只调用了一个防护函数,本来第一个那个防护函数我觉得是绕过不了的。但是这里只调用了一个html_safe 所以,我们可以进行大小绕过,或者双写绕过。
这里直接报错了。我们利用报错注入即可。
0x03 小记
- 寻找可控变量
- 寻找可以函数
- 从前台页面到对应后台页面
- 记住某些函数的特性(漏洞)