- 环境准备:phpstudy来搭建web服务、sublime作为代码编辑器(notepad++和phpstorm等都可以)、fortity和rips:静态扫描工具、beyond compare文本比较工具、seay代码审计工具。
- 挖掘思路:
- 敏感函数回溯参数。高效,通过搜索敏感函数的关键字,快速挖掘想要的漏洞。但是难以发现逻辑漏洞。
- 通读全文代码。观察目录结构,根据文件名去看代码。例如upload、admin、sqlconnect等敏感文件。
- 根据功能审计。
- 文件上传功能。检查代码对上传功能点是否设置过滤,过滤是否严格。
- 文件管理功能。注意是否存在任意文件下载或者任意文件读取。
- 登陆认证功能。
- 找回密码功能。
- 根据函数判断。
- sql注入:addslashes函数
mysql_real_escape_string
intval等字符转换:int类型转换
- xss
- 任意文件删除:rmdir-删除目录,unlink-删除文件
- 任意文件写入:copy:拷贝文件、file_put_contents、fputs、fwrite
- 任意文件操作
- 任意文件上传
- 命令注入:exec:执行一个外部程序、passthru:执行外部程序并显示原始输出、shell_exec:通过shell执行命令,并将输出通过字符串方式返回、system:执行外部程序,并显示输出、pcntl_exec:在当前进程空间执行指定程序、popen:通过popen()的参数执行一条命令,并对popen()打开的文件进行执行。
- 代码注入:eval、assert、call_user_func、call_user_func_array
- 变量覆盖:$$、parse_str、extract
- sql注入:addslashes函数