代码审计方法与步骤
一、审计前的准备
(1)获得源码
大多数PHP程序都是开源的、找到官网下载最新的源码包。
(2)安装网站
在本地搭建网站,一边审计一边调试。实时跟踪各种动态变化。
二、把握大局
(1)网站结构
浏览源码文件夹,了解该程序的大致目录
(2)入口文件
index.php、admin.php文件一般是整个程序的入口,详细读一下index文件可以知道程序的架构,运行流程,包含那些配置文件,包含哪些过滤文件以及包含那些安全过滤文件,了解程序的业务逻辑。
(3)配置文件
一般类似config.php等文件,保存一些数据库相关信息、程序的一些信息。先看看数据库编码,如果是gbk则可能存在管字节注入。如果变量的值用双引号、则可能存在双引号解析代码执行的问题。
(4)过滤功能
通过详读公公函数文件和安全过滤文件等文件,清晰掌握用户输入的数据,哪些被过滤,哪些无过滤,在哪里被过滤了,如何过滤的,能否绕过过滤的数据。过滤的方式是替换还是正则?有没有GPC?有没有使用addslasher()处理?
网站结构案例(1)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190617103610525.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg5OTU2MQ==,size_16,color_FFFFFF,t_70)
已经搭建在本地的网站结构案例(2)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190617103427874.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg5OTU2MQ==,size_16,color_FFFFFF,t_70)
审计方法
常见漏洞
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190617104156195.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg5OTU2MQ==,size_16,color_FFFFFF,t_70)