IIS短文件名漏洞修復
漏洞描述:
IIS短文件名泄露漏洞,Microsoft IIS在實現上存在文件枚舉漏洞,攻擊者可利用此漏洞枚舉網絡服務器根目錄中的文件。
危害:
攻擊者可以利用“~”字符猜解或遍歷服務器中的文件名,或對IIS服務器中的.Net Framework進行拒絕服務攻擊。
Windows 還以 8.3 格式生成與 MS-DOS 兼容的(短)文件名,以允許基於 MS-DOS 或 16 位 Windows的程序訪問這些文件。在cmd下輸入“dir /x”即可看到短文件名的效果。
通配符”*” 和 “?”發送一個請求到iis,當IIS接收到一個文件路徑中包含”~”的請求時,它的反應是不同的.基於這個特點,可以根據http的響應區分一個可用或者不可用的文件。如下圖所示不同IIS版本返回信息的不同。
根據返回值不同判斷漏洞是否存在,簡單舉例,www.test.com根目錄下存在一個je2se.sql文件。
通過構造請求
GET /je*~1*/ HTTP1.1 根據返回404,正確的名
GET /je11*~1*/ HTTP1.1 返回400 ,錯誤的名
我們就判斷存在II短文件漏洞,當然還有自動化掃描工具
鏈接如下:
https://github.com/lijiejie/IIS_shortname_Scanner
修復方法:
方法1、修改註冊列表HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation的值為1,或者,可以直接點此下載,然後運行,再重啟下機器。(此修改只能禁止NTFS8.3格式文件名創建,已經存在的文件的短文件名無法移除)。該修改不能完全修復,只是禁止創建推薦使用後面的修復建議
方法2、如果你的web環境不需要asp.net的支持你可以進入Internet 信息服務(IIS)管理器 --- Web 服務擴展 - ASP.NET 選擇禁止此功能。(推薦修復方法,能徹底修復)
方法3、升級net framework 至4.0以上版本。(推薦修復方法,能徹底修復)
IIS短文件名漏洞修復