审计方法与步骤
一.代码审计准备
代码审计是有套路的,因此我们应作如下准备,使我们接下来的工作更简单。
(1)获得源码
大多数PHP程序是开源的,找到官网下载最新的源码包就好。
(2)安装网站
在代码审计中,观察法往往得不到高的效率,因此,我们一般选择自己搭建网站,来达到一边审计一边调试的目的。
二.了解网站结构
(1)入口文件
入口文件一般为index.php、admin.php。其中index.php包含了程序的架构、运行流程、配置文件、过滤文件以及安全过滤文件,是整个网站架构的总体描述,从中我们可以了解到程序的业务逻辑。
(2)配置文件
配置文件一般为config.php等文件,其中保存着一些数据可相关信息、程序的一些信息。往往sql注入漏洞中宽字节注入的出现都是因为config.php中字符集的问题。而且如果变量的值用双引号、,则可能存在双引号解析代码执行的问题。
(3)过滤功能
过滤功能是整个网站安全的核心,是网站最重要的部分之一。其中包括公共函数文件和安全过滤文件等。审计过程中,您要清晰掌握用户输入的数据,那些被过滤,那些无过滤,在哪里被过滤了,如何过滤的,能否绕过过滤的数据。过滤的方式是替换还是正则?有没有GPC?有没有使用addslasher()处理?这些都尤为重要。
三.网站架构基本模型
熟悉网站架构基本模型,提高审计效率。
四.审计代码方法
(1)通读全文法
(2)敏感函数参数回溯法(shell_exec)
(3)定向功能分析法(安装问题)