1. 程式人生 > >Nginx越界讀取快取漏洞(CVE-2017-7529)

Nginx越界讀取快取漏洞(CVE-2017-7529)

Nginx在反向代理站點的時候,通常會將一些檔案進行快取,特別是靜態檔案。快取的部分儲存在檔案中,每個快取檔案包括“檔案頭”+“HTTP返回包頭”+“HTTP返回包體”。如果二次請求命中了該快取檔案,則Nginx會直接將該檔案中的“HTTP返回包體”返回給使用者。如果我的請求中包含Range頭,Nginx將會根據我指定的start和end位置,返回指定長度的內容。而如果我構造了兩個負的位置,如(-600, -9223372036854774591),將可能讀取到負位置的資料。如果這次請求又命中了快取檔案,則可能就可以讀取到快取檔案中位於“HTTP返回包體”前的“檔案頭”、“HTTP返回包頭”等內容。

漏洞影響

該漏洞影響所有 0.5.6 - 1.13.2版本內預設配置模組的Nginx只需要開啟快取攻擊者即可傳送惡意請求進行遠端攻擊造成資訊洩露。當Nginx伺服器使用代理快取的情況下攻擊者通過利用該漏洞可以拿到伺服器的後端真實IP或其他敏感資訊。
通過我們的分析判定該漏洞利用難度低可以歸屬於low-hanging-fruit的漏洞在真實網路攻擊中也有一定利用價值。

影響版本
Nginx version 0.5.6 - 1.13.2

修復版本
Nginx version 1.13.3, 1.12.1

檢查和利用

下載指令碼:
https://github.com/vulhub/vulhub/tree/master/nginx/CVE-2017-7529


執行:

python CVE-2017-7529_PoC.py http://192.168.1.15:8080

檢測到漏洞以及成功利用:
在這裡插入圖片描述
參考連結:
https://github.com/vulhub/vulhub/tree/master/nginx/CVE-2017-7529
https://github.com/en0f/CVE-2017-7529_PoC
在這裡插入圖片描述