ctfshow做到SQL注入实在是没心思坐下去了,数据库基础太差了,看不懂,就跳到后面的题目看看有什么感兴趣的,就看到了thinkphp专题,啧
thinkphp专题下面的571看不懂,看大佬做的是要去做代码审计的,一步一步看他调用了啥方法,觉得挺有意思们就去试着装环境了,然后我就被折磨了两天。。。
wamp下载
Download WampServer from SourceForge.net
vscode下载
Download Visual Studio Code - Mac, Linux, Windows
Xdebug就用了Wamp自带的
第一步,PHP环境变量配置
编辑系统环境变量,把环境变量里面的PATH加一条php.exe的路径,但是不要加上php.exe
D:\wamp64\bin\php\php7.4.26
我一开始写成了D:\wamp64\bin\php\php7.4.26\php.exe,结果一直不对,我还去改vscode里面的,然后有个反斜杠要双写,这里面就要php.exe了第二行是对的。
第二步,Wamp下的xdebug配置
通过WAMP配置可以自动下载好Xdebug并且在php.ini中路径都写好了
extension=php_xdebug
output_buffering = Off
; XDEBUG Extension
[xdebug]
zend_extension="d:/wamp64/bin/php/php7.4.26/zend_ext/php_xdebug-3.1.1-7.4-vc15-x86_64.dll"
xdebug.output_dir ="d:/wamp64/tmp"
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.client_port = 9000
xdebug.remote_host=127.0.0.1
xdebug.remote_handler=dbgp
xdebug.idekey = VSCODE
这是我东拼西凑最后成功运行的例子
这里坑了我一天时间啊,死活没想到这个写法还能过期,最后认真看了phpinfo才发现,唉
我以为是装的不对,vscode,Wamp,phpstudy几个版本都试了一遍,我是傻逼
因为现在下载的都是Xdebug3.X的版本,所以xdebug.remote_port=9000这语句现在已经过期了,但我之前看到别人的教程大概都是2021年左右的的但就一直是xdebug.remote_port=9000,但现在已经改成了xdebug.client_port,并且必须写xdebug.mode = debug 才行。
具体为什么,可以查文档
PHP Debug - Visual Studio Marketplace
还有一点是php.ini是apache中的php.ini 而不是php自己的ini
具体可以看phpinfo里面给的路径
第三步,开启调试
首先,搜索php debug扩展
这和我网上看到的也不一样,因为他们的作者都是F开头的,但我找不到
然后点上面的哪个按钮
生成一个php 的lanch.json
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9000
},
把listen for xdebug 的端口号改成和php.ini里面一样就行
最后写一个简单的phpinfo()打上断点,运行调试
这里访问的不是刚才配置的9000端口,只需要正常访问apache的开的端口就行
测试成功