首先來幾個網址先了解一下html
https://www.jb51.net/article/166405.htmpython
https://www.freebuf.com/articles/web/172561.htmlgit
總結:github
1、漏洞描述:
此漏洞實際是由HTTP請求中舊DOS 8.3名稱約定(SFN)的代字符(~)波浪號引發的。它容許遠程攻擊者在Web根目錄下公開文件和文件夾名稱(不該該可被訪問)。攻擊者能夠找到一般沒法從外部直接訪問的重要文件,並獲取有關應用程序基礎結構的信息。web
2、漏洞原理
==》IIS短文件名漏洞原理:
IIS的短文件名機制,能夠暴力猜解短文件名,訪問構造的某個存在的短文件名,會返回404,訪問構造的某個不存在的短文件名,返回400。
==》漏洞成因:
爲了兼容16位MS-DOS程序,Windows爲文件名較長的文件(和文件夾)生成了對應的windows 8.3短文件名。
在Windows下查看對應的短文件名,可使用命令dir /x
==》短文件名特徵:
1.只顯示前6位的字符,後續字符用~1代替。其中數字1是能夠遞增。若是存在文件名相似的文件,則前面的6個字符是相同的,後面的數字進行遞增
2.後綴名最長只有3位,超過3位的會生成短文件名,且後綴多餘的部分會截斷。
3.全部小寫字母均轉換成大寫的字母
4.長文件名中包含多個」.」的時候,以文件最後一個」.」做爲短文件名的後綴
5.長文件名前綴/文件夾名字符長度符合0-9和A-Z、a-z範圍且須要大於等於9位纔會生成短文件名,若是包含空格或者其餘部分特殊字符,不論長度均會生成短文件。sql
3、漏洞環境搭建及漏洞復現
一、測試環境爲windows server 2003 r2,開啓webdav服務和net服務。windows
4、防護
一、升級.net framework
二、修改註冊表鍵值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 修改NtfsDisable8dot3NameCreation爲1。修改完成後,須要重啓系統生效。注:此方法只能禁止NTFS8.3格式文件名建立,已經存在的文件的短文件名沒法移除,須要從新複製纔會消失。若是不從新複製,已經存在的短文件名則是不會消失的
2.1重啓系統以後,在網站根目錄(C:\Inetpub\wwwroot)下建立hhhhhhhhhhhhhhhhhhhh.txt,而後查看是否會生成短文件名。下圖能夠看到,沒有生成短文件名,說明防護生效。
2.二、將wwwroot目錄下文件複製到另外一個back文件下,而後刪除原wwwroot目錄下全部內容,再把back下的內容從新複製到wwwroot目錄下,這時從新查看,則不存在短文件名了服務器
5、總結
該漏洞的意義:
一、 猜解後臺地址
二、 猜解敏感文件,例如備份的rar、zip、.bak、.sql文件等。
三、 在某些情形下,甚至能夠經過短文件名web直接下載對應的文件。
該漏洞的侷限性:
一、 只能猜解前六位,以及擴展名的前三位。
二、 名稱較短的文件是沒有相應的短文件名的。
三、 不支持中文文件名
四、 若是文件名前6位帶空格,8.3格式的短文件名會補進,和真實文件名不匹配
五、 須要IIS和.net兩個條件都知足。app
①環境搭建:編輯器
這裏選取window2003的IIS6來複現IIS短文件名漏洞,攻擊機使用kali,不用win7是由於裝了python3,懶得從新安裝python2環境了。開時Web服務器的三個配置,訪問cms網站成功,開時操做。
②攻擊靶機
kali ip爲192.168.3.110,windows2003是192.168.3.48,kali ping 2003服務器成功,證實二者連通性,在github下載的工具目錄下執行:python2 iis_shortname_Scan.py 192.168.3.48,報錯,137行 if not s.isvul():
查看下載的配置文件 iis_shortname_Scan.py,使用編輯器打開,vi iis_shortname_Scan.py,查看137行的if not s.isvul(),根據參數target能夠看到應該是傳參錯誤,上面有個參考,前面+http://
從新再來,python2 iis_shortname_Scan.py http://192.168.3.48
能夠看見上面,py腳本成功執行,也猜解正確了短文件名。
③ 實戰環境,開啓代理
1.拿到一個XX市XX單位站點,必須爲爲IIS+asp服務器,網站XXX
使用Payload開擼:python2 iis_shortname_Scan.py http://目標網站
失敗!哪有一路順風的事情,看到剛纔源代碼,這是139行的print,Server is not vulunerable 證實無此漏洞,繼續。
2.再戰,paylaod: python2 iis_shortname_Scan.py 目標站點
確實有上面短文件名,證實該網站IIS短文件名漏洞真實存在。
修復建議:參考最前面的文檔說明。
特別聲明:
因爲傳播、利用此文所提供的信息而形成的任何直接或者間接的後果及損失,均由使用者本人負責,我不爲此承擔任何責任。
做者有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等所有內容。未經做者的容許,不得任意修改或者增減此文章內容,不得以任何方式將其用於商業目的。 切勿用於非法,僅供學習參考