web中間件作為web安全的重要一塊,經常會有人問balabala,雖然有很多已經人盡皆知並且基本不再構成威脅了,但是還是有必要說一下,了解歷史,了解我們從哪里來
鑒於內容實在是太多,本來打算一起寫完,篇幅太長不方便閱讀,有點惡心,就改分篇寫了
IIS是十分常見的中間件,只適用於微軟windows操作系統
找了個freebuf上的圖
(1)
1.解析漏洞
IIS6.0
(1)以*.asp為命名的文件夾下的任何文章會被解析為.asp格式

(2)*.asp;.jpg這種格式的文件,后綴會被;所截斷,分號后的被忽略,文件被當做asp執行

在IIS6.0下,*.asa *.cer *.cdx也會被解析,和*.asp一樣,比如你傳lcx.asp與傳lcx.cer一樣的
這里有個問題說一下,如果上傳的文件被重命名了,也就是說文件名不可控,比如以上傳時間為名字,用不了文件名截斷即(2)點,可以往文件夾名稱解析即(1)點方向靠
所以防御的方向就是:
(1)在服務器上限制上傳目錄的執行權限不讓他執行腳本
(2)也不允許新建目錄防止出現上文說的文件夾名稱解析漏洞
(3)將上傳的文件重命名,什么隨機數,時間戳都用上
IIS7.0/7.5
與PHP配合,訪問phpinfo.php,看一眼server API寫的啥

如果如圖中所示,FastCGI開着,則會出現在任意文件名后加上/.php,此文件會被當做PHP文件解析
例如 lcx.txt/.php => lcx.php
防御辦法除了與IIS6.0相同的思路,還要把php.ini中這一項

去除注釋,值改成0
2.PUT任意文件寫入
漏洞產生的原因是在web服務擴展中開啟了WebDAV,配置了可以寫入的權限


看到WebDAV允許,寫入打鈎
推薦工具:桂林老兵iiswrite,用各種請求方式,什么PUT / MOVE 之類的往服務器中傳后門文件,改文件名,菜刀連一波(具體不介紹了,網上相關教程很多,很老的東西了)
建議把這兩個東西關了
3.IIS短文件漏洞
漏洞產生的原因是為了兼容MS-DOS程序,windows為文件名較長的文件生成了對應的windows 8.3的短文件名,攻擊者可通過短文件名猜解對應的文件,訪問下載敏感資源,繞過某些限制
dir /x一下可以看到短文件名長什么樣

倒數第二列就是短文件名
短文件名是有一定規則的:
1.只有前六位字符直接顯示,后續字符用~1指代。其中數字1還可以遞增,如果存在多個文件名類似的文件(名稱前6位必須相同,且后綴名前3位必須相同);
2.后綴名最長只有3位,多余的被截斷,超過3位的長文件會生成短文件名;
3.所有小寫字母均轉換成大寫字母;
4.長文件名中含有多個“.”,以文件名最后一個“.”作為短文件名后綴;
5.長文件名前綴/文件夾名字符長度符合0-9和Aa-Zz范圍且需要大於等於9位才會生成短文件名,如果包含空格或者其他部分特殊字符,不論長度均會生成短文件;
IIS8.0以下版本需要開啟asp.net支持,IIS8.0及以上可不需要asp.net,轉用OPTIONS與TRACE方法猜解

怎么猜解的,以低版本IIS為例
(2)
這個圖很好的說明了猜解過程,一圖勝千言
用類似正則的*代表未猜解的部分,根據返回特征碼的不同進行判斷猜解是否成功
但是這個短文件漏洞,限制實在太多,比如文件名太短就沒有短文件,文件名太長后續內容你也猜不出來(最多就能確定前6個字符,而且帶空格或者.啥的都會對猜解造成誤判)個人認為比較雞肋
修復的話,在命令行窗口下或者注冊表中,關閉NTFS8.3文件格式支持
4.CVE-2015-1635(MS15034)
IIS6.0以上的Windows 7、Windows Server 2008 R2、Windows 8、Windows Server 2012、Windows 8.1 和 Windows Server 2012 R2都可能中招
這是HTTP.SYS(一個系統核心組件)的一個遠程代碼漏洞,攻擊者發送惡意請求的數據包,執行代碼可讀取IIS服務器中內存數據,甚至藍屏
參考文章
http://www.ijiandao.com/safe/cto/12829.html
介紹得很全面
5.CVE-2017-7269
只影響Windows 2003 R2開啟WebDAV服務的IIS6.0服務器(條件苛刻),一個遠程代碼執行漏洞
MSF中exp下載
https://github.com/zcgonvh/cve-2017-7269
可導入msf中使用
詳細分析:https://paper.seebug.org/259/作者:k0shl
注:文中圖(1)(2)出自
https://www.freebuf.com/articles/web/172561.html
隨便轉載,請標明作者出處
