本文记录 PHP 代码审计的学习过程,教程为暗月 2015 版的 PHP 代码审计课程
1. 简介
漏洞形成的条件
- 可以控制的变量(一切输入都是有害的)
- 变量到达有利用价值的函数(危险的函数)
漏洞造成的效果
- 漏洞的利用效果取决于最终函数的功能
- 变量进入什么样的函数就导致什么样的效果
危险函数
什么样的函数就会导致什么样的漏洞
- 文件包含:包含漏洞
- 代码执行:执行任意代码漏洞
- 命令执行:执行任意命令漏洞
- 文件系统操作:文件(目录)读写删除等漏洞
- 数据库操作:SQL 注入漏洞
- 数据显示: XSS 等客户端-服务器端漏洞
- 其他
代码审计的本质
找漏洞,找对应变量与函数
变量跟踪过程
通过变量找函数(正向跟踪)
通过函数找变量(逆向跟踪)