天天看点

代码审计的思路

seay 代码审计中总结:

常见的代码审计思路有以下四种: 

1) 根据敏感关键字回溯参数传递过程

2) 查找可控变量,正向追踪变量传递过程

3) 寻找敏感功能点,通读功能点代码

4) 直接通读全文代码

一:根据敏感关键字回溯参数传递过程

根据敏感函数来逆向追踪参数的传递过程,是目前使用得最多的一种方式,因为大多数漏洞是由于函数的使用不当造成的。另外非函数使用不当的漏洞,如 SQL 注入,也有一些特征,比如 Select、 Insert 等,再结合 From 和 Where 等关键字,我们就可以判断这是否是一条 SQL 语句,通过对字符串的识别分析,就能判断这个 SQL 语句里面的参数有没有使用单引号过滤,或者根据我们的经验来判断。

像 HTTP 头里面的 HTTP_ CLIENT_ IP 和 HTTP_ X_ FORWORDFOR 等获取到的 IP 地址经常没有安全过滤就直接拼接到 SQL 语句中,并且由于它们是在$_ SERVER 变量中不受 GPC 的影响,那我们就可以去查找 HTTP_ CLIENT_ IP 和 HTTP_ X_ FORWORDFOR 关键字来快速寻找漏洞。

继续阅读