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