0x0 前言
当我们进行代码审计的时候,必不可少的就是debug。为了后面更加方便清晰的解释漏洞产生的原因和执行流程。特作此篇帮助像我一样的小白更好的学习!
xdebug介绍:Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况
0x1 配置环境&所需工具
- PHPSTROM
- 一款强大的IDE(集成开发环境 Integrated Development Environment )
- 下载地址:https://www.jetbrains.com/zh-cn/phpstorm/promo/
- phpstudy2018
- PHP调试环境的程序集成包,对我这种新手来说极其友好
- php版本:
5.4.45-nts apache
- 下载地址:https://www.xp.cn/download.html
- xdebug插件-firefox
- 我也不知道why,我这边虚拟机中chrome安装这个插件是无法使用的,所以这篇文章就用firefox浏览器进行演示。当然,你也可以通过chrome浏览器进行安装,步骤都是一样的。
- 下载地址:https://addons.mozilla.org/en-US/firefox/addon/xdebug-helper-for-firefox/
0x2 安装过程
phpstrom, phpstudy安装就不演示了,基本都是下一步下一步(傻瓜式操作)
1.配置站点
添加虚拟目录站点
修改本地host文件,cmd执行ipconfig /flushdns
(刷新dns缓存)
测试一下是否能正常解析
2.配置xdebug
这里有两种方式安装扩展,首先说一下我用的方式
代码语言:javascript复制XDebug]
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir="C:phpStudyPHPTutorialtmpxdebug"
xdebug.trace_output_dir="C:phpStudyPHPTutorialtmpxdebug"
xdebug.profiler_output_name = "cache.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
# 下面三行
zend_extension = "C:phpStudyPHPTutorialphpphp-5.4.45-ntsextphp_xdebug.dll" # 使用自带的
xdebug.remote_autostart=1
xdebug.remote_enable = On
xdebug.remote_port = 2333 # 修改端口,防止冲突
xdebug.idekey="PHPSTORM"
修改完配置文件,记得重启
网上的多数教程的方式
复制phpinfo()
的内容,进入https://xdebug.org/wizard,将刚才复制的内容拷贝进去分析,然后就可以得到当前php版本对应的xdebug文件
查看xdebug是否安装成功
方法1
代码语言:javascript复制# phpinfo.php
<?php phpinfo();?>
方法2
代码语言:javascript复制.php.exe -m
3.配置phpstorm
a.设置php解释器
php解释器,就是php的执行程序,在安装目录下有个php.exe
ctrl alt s
b.配置xdebug选项
c.配置DBGp Proxy
d.配置服务器端的信息
e. 添加调试配置
填写相关信息
4. 配置浏览器
安装浏览器插件
访问https://addons.mozilla.org/en-US/firefox/addon/xdebug-helper-for-firefox/
进入扩展选项
0x3.调试基本使用
调试窗口各个区域
调试快捷键
F7
通过当前行,进入下一行,如果该行是方法,则进入方法体
F8
通过当前行,进入下一行,如果该行是方法,也直接进入下一行,不进入方法体
F9
通过整个流程,全部顺序执行