代码审计-思路及工具
关于一些代码审计时的脆弱文件
函数集文件
通常命名中包含functions或者common等关键字
这些文件里面是一些公用函数,提供给其他文件统一调用,所以大多数文件都会在文件头包含到这类文件,寻找这类文件的技巧就是去打开index.php或者一些功能性的文件。
配置文件
通常命名中包含config关键字
配置文件包括Web程序运行必须的功能性配置选项以及数据库等配置信息。从这类文件可以了解程序的部分功能,另外看这类文件的时候注意配置文件中的参数是用单引号还是双引号括起来,如果是双引号,则可能存在代码执行漏洞。例如:PHP中双引号引起的命令执行漏洞(Kuwebs代码审计 )
安全过滤文件
通常命名中有filter、safe、check等关键字
安全过滤文件对做代码审计十分重要,这类文件主要是对SQL和XSS注入的参数进行过滤,还要文件路径和命令执行的参数。目前大多数程序都会在程序入口循环对所有参数使用addslashes()函数进行过滤。
入口文件
index.php是一个程序入口文件
所以通常我们只要读一遍index.php就可以大致了解整个程序的架构、运行的顺序、包括到的文件、以及其中核心的文件位置。
审计过程
以骑士cms为例
首先
拿到到源码,首先寻找名称中有没有带api、admin、manage、include一类关键字的文件和文件夹,通常这类文件比较重要,其次再查看关键文件代码。
审计工具
PHP审计
针对PHP代码审计工具有Seay审计系统和Rips审计系统
个人喜欢两个一起使用,
Seay审计系统误报非常多,但是扫描速度比较快
Rips审计系统审计很慢,但是准确率相对Seay更高一点。


JAVA审计
听说比较好用的有Fortify SCA和Checkmarx
Links to tools
Rips-scanner
https://github.com/robocoder/rips-scanner
SeaySourceCodeCheck
https://github.com/euphrat1ca/SeaySourceCodeCheck

浙公网安备 33010602011771号