
今天大寶seo博客轉載來(lái)自百度安全指數的感信一篇關(guān)于Nginx敏感信息泄漏漏洞的分??析報告(′?`*),為了修復整數溢出漏洞(CVE-2017-7529),息泄 Nginx官方發(fā)布了nginx-1.12.1 stable和nginx(?????)-1.13.3 mainl??ine版本,露漏并且提供了官方patch。分析
2017年7月11日,感信Nginx官方發(fā)布最新的息泄安全公告,在Nginx范圍過(guò)濾器中發(fā)現了一個(gè)安全問(wèn)題(CVE-2017-7529),露漏通過(guò)精心構造的分析惡意(′-ι_-`)請求可能會(huì )導致整數溢出并且不正確處理范圍,從而導致敏感信息泄漏。感信當(′ω`)使用Nginx標準模塊時(shí),息泄如果(′▽?zhuān)?)文件頭從緩存返回響應,露漏允許(′-ι_-`)攻擊者獲取??緩存文件頭。??分析在某些配置中,感信緩存文件頭可能包含后端服務(wù)器IP地址或其他敏感信息。息泄此(ci)外,露漏(′_`)如果使用第三方??模塊有潛在的可能導致拒絕服務(wù)。
二、漏洞描述&影響
Integer ove(╯‵□′)╯rflow in the range filter
Severity: medium
當使用Nginx并且開(kāi)啟緩存功能時(shí),攻擊者可以構造特定header頭字段,能越界讀取到緩存文件的文件??頭信息。文件頭信息中可能會(huì )包含Nginx代理站點(diǎn)的真實(shí)IP,造成敏感信息泄露。
另外,一些第三方模塊可能會(huì )因此導致拒絕服務(wù)或者當前進(jìn)程(cheng)的內?存泄漏,但Ng??inx官方暫未發(fā)現這樣的第三方模塊。
此漏洞涉及了nginx 0.5.6 – 1.13.2全版本。
此漏洞需要在Nginx用作代理緩存的情況下才能觸發(fā),如基于Ngi┐(′д`)┌nx的CDN服務(wù)等。
當緩存的設置如下時(shí),也不會(huì )泄露后臺的IP信息。
三、漏洞細節
首先從patch定位問(wèn)題,src/http/modules/ngx_http_range_filter_module.c(range過(guò)濾模塊)
官方patch了兩個(gè)地方,一個(gè)避免range start 為負值,一個(gè)??保護整形size不被溢出。
通過(guò)patch的文檔意見(jiàn)函數邏輯可以看出,如果使用 bytes=-100進(jìn)入if(suff(′?_?`)ix),end設置一個(gè)大于緩存文件大小的值,會(huì )導致start 為負值。
size 一直累加,最后size 有個(gè)判ヾ(?■_■)ノ斷, size 需要一個(gè)特別大的值構成size 累加為負值。
因此,我們可以構造 range:bytes=??-xx,-xx,-xx,-xx構造成size有符號整形溢出為負值。在(′ω`*)GDB里構造請求調試進(jìn)行驗證:
size 累加成一個(gè)負值。
可以獲取緩存文件的key。這里啟用了以下配置,因此獲取不到真實(shí)的IP地址。
四、修???復
1、升級Ngi??nx到最新無(wú)漏洞版本,當前1.13.3,1.12.1版本中已修復了這個(gè)問(wèn)題;
2、臨時(shí)方案:配置 max_ranges 1;
3、使用百度云加速WAF防火墻進(jìn)行防御;
4、添加網(wǎng)站至安(?????)全指數,及時(shí)了解網(wǎng)站組件突發(fā)/0day漏洞。