审计方法与步骤

一、审计前的准备

获得源码
大多数PHP程序都是开源的、找到官网下载最新的源码包。
安装网站
在本地搭建网站,一边审计一边调试。实时跟踪各种动态变化。

把握大局

网站结构
浏览源码文件夹,了解该程序的大致目录
入口文件
index.php、admin.php文件一般是整个程序的入口,详细读一下index文件可以知道程序的架构,运行流程,包含那些配置文件,包含哪些过滤文件以及包含那些安全过滤文件,了解程序的业务逻辑。
配置文件
一般类似config.php等文件,保存一些数据库相关信息、程序的一些信息。先看看数据库编码,如果是gbk则可能存在管字节注入。如果变量的值用双引号、则可能存在双引号解析代码执行的问题。
过滤功能
通过详读公公函数文件和安全过滤文件等文件,清晰掌握用户输入的数据,哪些被过滤,哪些无过滤,在哪里被过滤了,如何过滤的,能否绕过过滤的数据。过滤的方式是替换还是正则?有没有GPC?有没有使用addslasher()处理?
网站结构
审计方法与步骤_第1张图片

审计方法

一、诵读全文法
通过全文法作为一种最麻烦的方法也是最全面的审计方法。特别是针对大型程序,源码成千上万行。但是该方法也是一种必要的方法。了解整个应用的业务逻辑,才能挖掘到更多更有价值的漏洞。
这种方法一般是企业对自身产品的审计,当然,对于小型应用,未尝不可以读一读。
二、敏感函数参数回溯法(shell_exec)
这个方法是最高效,最常用的方法。
大多数漏洞的产生是因为函数的使用不当导致的,我们只要找到这样的一些使用不当的函数,就可以快速挖掘想要的漏洞。利用正则匹配一些高危函数,关键函数以及敏感关键字,然后就可以分析判断敏感函数的上下文,追踪参数源头。
三、定向功能分析法(安装问题)
该方法主要是根据程序的业务逻辑来说审计的。
首先是用浏览器逐个访问浏览,根据相关功能,大概推测可能存在哪些漏洞

审计方法与步骤_第2张图片

你可能感兴趣的:(审计方法与步骤)