审计方法与步骤(本篇基本上是照搬老师的笔记,没什么东西)

基础准备

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


(重要)把握大局的思想

我们需要对网站有一个完整的了解,例如:网站结构,入口文件,配置文件,过滤功能。

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


审计的方法

通读全部代码。(把握大局)
比较实用,但是很麻烦,这种方法一般是企业对自身产品的审计,对于小型的应用也可以,因为简单嘛,源码少。把握大局必须要通读全部代码,根据入口文件进入各个功能进行审计。
敏感函数参数回溯法(shell_exec)
根据一些敏感的函数,去逆行追踪参数传递的过程。这种方法很高效,也很常用。
定向功能分析法(最主要的!!!!)
根据程序的业务逻辑,业务功能,去审计代码。根据功能去推测有可能出现的漏洞。


总结套路:1、把握大局2、定向功能3、敏感函数参数回溯。

你可能感兴趣的:(作业)