闲来无事,想想写个“水文”,这两天天天渗透app和小程序,有些“枯燥”,想着写一个php代码审计的系列随笔,从环境搭建开始
Ready
0x01 下载工具
php代码审计需要准备的工具
•phpstudy•phpstrom 用途就不多说了,phpstrom比较好用,方便代码审计下断点以及跟进函数,phpstudy集成web服务以及mysql数据库也比较方便。
0x02 安装cms,这个步骤比较简单,很容易复现
安装成功提示如下
0x03 phpstrom配置php环境
配置php环境位置
File->Settings-> Languages&Frameworks->PHP
接下来安装xdebug扩展,根据php版本选择扩展文件,由于我的php版本为5.6所以选择下载地址为php-5.6-xdebug[1]
安装位置放在phpstudy下的php文件夹对应的php可执行程序的ext文件夹下
接着修改php.ini配置文件,添加xdebug配置内容
[XDebug]
xdebug.profiler_output_dir="D:\phpStudy\tmp\xdebug"
xdebug.trace_output_dir="D:\phpStudy\tmp\xdebug"
;zend_extension="D:\phpStudy\php\php-5.6.27-nts\ext\php_xdebug.dll"
;zend_extension="C:\phpStudy20161103\php\php-5.6.27-nts\ext\php_xdebug.dll"
zend_extension="D:\phpStudy\php\php-5.6.27-nts\ext\php_xdebug-2.5.5-5.6-vc11-nts-x86_64.dll" ;指定Xdebug扩展文件的绝对路径
xdebug.auto_trace=on ;启用代码自动跟踪
xdebug.collect_params=on ;允许收集传递给函数的参数变量
xdebug.collect_return=on ;允许收集函数调用的返回值
xdebug.trace_output_dir="D:\phpStudy\tmp\xdebug" ;指定堆栈跟踪文件的存放目录
xdebug.profiler_enable=on ;是否启用Xdebug的性能分析,并创建性能信息文件
xdebug.profiler_output_dir="D:\phpStudy\tmp\xdebug" ;指定性能分析信息文件的输出目录
xdebug.remote_enable = on ;是否开启远程调试
xdebug.remote_handler = dbgp ;指定远程调试的处理协议
xdebug.remote_host= localhost ;指定远程调试的主机名
xdebug.remote_port = 9000 ;指定远程调试的端口号
xdebug.idekey = PHPSTORM ;指定传递给DBGp调试器处理程序的IDE Key
在这里尽量根据访问该xdebug网址[2]去识别对应的xdebug,否则无法启动debug,或者选用路径为对应php版本下的xdebug
phpstudy启用cmd命令行运行命>php -m 发现xdebug已经安装完毕
phpstrom配置debug环境
配置server
运行时选择配置的servers
浏览器安装插件方便使用进行debug测试
Go
验证phpstrom能否下断点进行debug测试
PHP代码审计的准备工作到此位为止,下次的文章主要分享断点调试结合浏览器定位以及跟进的一些方法,再者就是某cms的审计。
Tips:忽略图一,由于一个系列的慢慢更新!!!
References
[1]
php-5.6-xdebug: https://xdebug.org/files/php_xdebug-2.5.5-5.6-vc11-nts-x86_64.dll[2]
该xdebug网址: https://xdebug.org/wizard