每日漏洞 | HTTP.sys遠(yuǎn)程代碼執(zhí)行

01?漏洞描述

上篇文章介紹了Host頭攻擊,今天我們講一講HTTP.sys遠(yuǎn)程代碼執(zhí)行漏洞。

HTTP.sys是Microsoft Windows處理HTTP請(qǐng)求的內(nèi)核驅(qū)動(dòng)程序,為了優(yōu)化IIS服務(wù)器性能,從IIS6.0引入,IIS服務(wù)進(jìn)程依賴HTTP.sys。HTTP.sys遠(yuǎn)程代碼執(zhí)行漏洞實(shí)質(zhì)是HTTP.sys的整數(shù)溢出漏洞,當(dāng)攻擊者向受影響的Windows系統(tǒng)發(fā)送特殊設(shè)計(jì)的HTTP 請(qǐng)求,HTTP.sys 未正確分析時(shí)就會(huì)導(dǎo)致此漏洞,成功利用此漏洞的攻擊者可以在系統(tǒng)帳戶的上下文中執(zhí)行任意代碼。

主要存在Windows+IIS的環(huán)境下,任何安裝了微軟IIS 6.0以上的Windows Server 2008 R2/Server 2012/Server 2012 R2以及Windows 7/8/8.1操作系統(tǒng)都受到這個(gè)漏洞的影響。

02?漏洞知識(shí)拓展

說到HTTP.sys遠(yuǎn)程代碼執(zhí)行漏洞,不得不先介紹一下Range首部字段。

在“上古時(shí)代”,網(wǎng)絡(luò)并不是很好,下載大型文件很不容易。下載途中如果網(wǎng)絡(luò)中斷,就得重頭開始下。為了解決這個(gè)問題,HTTP/1.1引入了范圍請(qǐng)求。

在請(qǐng)求報(bào)文的Range首部字段中指定資源的byte范圍,告訴服務(wù)器,請(qǐng)求的是資源哪個(gè)范圍的內(nèi)容,讓斷點(diǎn)續(xù)傳和并行下載得以實(shí)現(xiàn)。

如果服務(wù)器支持范圍請(qǐng)求,響應(yīng)包中就會(huì)存在Accept-Ranges字段(且值不為“none”,bytes為資源范圍的單位),并在Content-Length字段中告訴客戶端資源的大小范圍。

如果沒有Accept-Ranges字段,則服務(wù)器可能不支持范圍請(qǐng)求,有的服務(wù)器會(huì)明確將值設(shè)為“none”。

服務(wù)器面對(duì)范圍請(qǐng)求,有三種響應(yīng):

請(qǐng)求成功:

響應(yīng)206Partial Content請(qǐng)求范圍越界:(范圍超過資源的大小)

響應(yīng)416Requested Range Not Satisfiable不支持范圍請(qǐng)求:

響應(yīng)200OK

而HTTP.sys遠(yuǎn)程代碼執(zhí)行漏洞正是利用Range字段注入惡意數(shù)據(jù)。該漏洞的檢測(cè),也是利用服務(wù)器面對(duì)范圍請(qǐng)求時(shí)的響應(yīng)特征來判斷。

當(dāng)然,范圍請(qǐng)求不止這些知識(shí)點(diǎn),詳情可查看RFC:

https://tools.ietf.org/html/rfc7233

03?漏洞檢測(cè)

HTTP.sys漏洞的檢測(cè)比較簡單,先判斷目標(biāo)環(huán)境是不是Windows+IIS,然后構(gòu)造Range字段進(jìn)行檢測(cè)即可。

檢測(cè)時(shí),在請(qǐng)求包中添加Range字段,如下:

Range: bytes=0-18446744073709551615

提交給服務(wù)器,查看服務(wù)器響應(yīng)。

服務(wù)器響應(yīng)400,證明不存在HTTP.sys遠(yuǎn)程代碼執(zhí)行漏洞。如果響應(yīng)416,則證明系統(tǒng)存在漏洞。

這里簡單說一下Range字段值的含義。18446744073709551615轉(zhuǎn)為十六進(jìn)制是 0xFFFFFFFFFFFFFFFF(16個(gè)F),是64位無符號(hào)整型所能表達(dá)的最大整數(shù),整數(shù)溢出和這個(gè)超大整數(shù)有關(guān)。

另外,Apache幾個(gè)老版本存在的Apache?HTTP?Server畸形Range選項(xiàng)處理遠(yuǎn)程拒絕服務(wù)漏洞,也是通過Range字段觸發(fā)的,有興趣的校友可以去了解了解。

04?漏洞修復(fù)

升級(jí)補(bǔ)?。?/p>

http://technet.microsoft.com/security/bulletin/MS15-034

禁用IIS內(nèi)核緩存(緩解方案):

https://technet.microsoft.com/en-us/library/cc731903(v=ws.10).aspx

05?免責(zé)聲明

安全小白團(tuán)是幫助用戶了解信息安全技術(shù)、安全漏洞相關(guān)信息的微信公眾號(hào)。安全小白團(tuán)提供的程序(方法)可能帶有攻擊性,僅供安全研究與教學(xué)之用,用戶將其信息做其他用途,由用戶承擔(dān)全部法律及連帶責(zé)任,安全小白團(tuán)不承擔(dān)任何法律及連帶責(zé)任。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容