web中間件漏洞之IIS篇
作者:星期五, 二月 22, 20190

一、IIS簡介

IIS是Internet Information Services的縮寫,意為互聯網信息服務,是由微軟公司提供的基于運行Microsoft Windows的互聯網基本服務。

最初是Windows NT版本的可選包,隨后內置在Windows 2000、Windows XP Professional和Windows Server 2003一起發行,但在Windows XP Home版本上并沒有IIS。

IIS是一種Web(網頁)服務組件,其中包括Web服務器、FTP服務器、NNTP服務器和SMTP服務器,分別用于網頁瀏覽、文件傳輸、新聞服務和郵件發送等方面,它使得在網絡(包括互聯網和局域網)上發布信息成了一件很容易的事。 

IIS的安全脆弱性曾長時間被業內詬病,一旦IIS出現遠程執行漏洞威脅將會非常嚴重。遠程執行代碼漏洞存在于 HTTP 協議堆棧 (HTTP.sys) 中,當 HTTP.sys 未正確分析經特殊設計的 HTTP 請求時會導致此漏洞。 成功利用此漏洞的攻擊者可以在系統帳戶的上下文中執行任意代碼,可以導致IIS服務器所在機器藍屏或讀取其內存中的機密數據。

二、PUT漏洞

1. 漏洞介紹及成因

IIS Server在Web服務擴展中開啟了WebDAV,配置了可以寫入的權限,造成任意文件上傳。

版本:IIS 6.0

2.  漏洞復現

1)開啟WebDAV和寫權限;

2) 利用burp測試抓包,將GET請求改為OPTIONS;

3)利用工具進行測試;

成功上傳,再上傳一句話木馬,然后用菜刀連接,getshell;

3. 漏洞修復

關閉WebDAV和寫權限;

三、短文件名猜解

1. 漏洞介紹及成因

IIS的短文件名機制,可以暴力猜解短文件名,訪問構造的某個存在的短文件名,會返回404,訪問構造的某個不存在的短文件名,返回400。

2. 漏洞復現

1)在網站根目錄下添加aaaaaaaaaa.html文件;

2)進行猜解;

3. 漏洞修復

修復方法:

1)升級.net framework;

2)修改注冊表禁用短文件名功能;

快捷鍵Win+R打開命令窗口,輸入regedit打開注冊表窗口,找到路徑:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,將其中的 NtfsDisable8dot3NameCreation這一項的值設為 1,1代表不創建短文件名格式,修改完成后,需要重啟系統生效。

3)CMD關閉NTFS 8.3文件格式的支持;

4)將web文件夾的內容拷貝到另一個位置,如c:\www到d:\w,然后刪除原文件夾,再重命名d:\w到c:\www。

修復后:

4. 局限性

1) 此漏洞只能確定前6個字符,如果后面的字符太長、包含特殊字符,很難猜解;

2) 如果文件名本身太短(無短文件名)也是無法猜解的;

3) 如果文件名前6位帶空格,8.3格式的短文件名會補進,和真實文件名不匹配;

四、遠程代碼執行

1. 漏洞介紹及成因

在IIS6.0處理PROPFIND指令的時候,由于對url的長度沒有進行有效的長度控制和檢查,導致執行memcpy對虛擬路徑進行構造的時候,引發棧溢出,從而導致遠程代碼執行。

2. 漏洞復現

1)漏洞環境搭建

在windows server 2003 r2 32位上安裝iis6.0;

2)觸發漏洞

在本地執行exp,exp如下:

執行成功后,服務器端彈出計算器:

3. 漏洞修復

1)關閉WebDAV服務;

2)使用相關防護設備;

五、解析漏洞

1. 漏洞介紹及成因

IIS 6.0在處理含有特殊符號的文件路徑時會出現邏輯錯誤,從而造成文件解析漏洞。這一漏洞有兩種完全不同的利用方式:

/test.asp/test.jpg

test.asp;.jpg

2. 漏洞復現

  • 利用方式1

第一種是新建一個名為”test.asp”的目錄,該目錄中的任何文件都被IIS當作asp程序執行(特殊符號是“/”);

  • 利用方式2

第二種是上傳名為”test.asp;.jpg”的文件,雖然該文件真正的后綴名是”.jpg”,但由于含有特殊符號”;”,仍會被IIS當做asp程序執行;

IIS7.5文件解析漏洞

test.jpg/.php

URL中文件后綴是.php,便無論該文件是否存在,都直接交給php處理,而php又默認開啟”cgi.fix_pathinfo”功能,默認會對文件進行“修理”,何謂“修理”呢?舉個例子,當php遇到路徑為”/aaa.xxx/bbb.yyy”的時侯,若”/aaa.xxx/bbb.yyy”不存在,則會去掉最后的“bbb.yyy”,然后判斷”/aaa.xxx”是否存在,若存在,則把“/aaa.xxx”當作文件。

若有文件test.jpg,訪問時在其后加/.php,便可以把”test.jpg/.php”交給php,php修理文件路徑”test.jpg/.php”得到”test.jpg”,該文件存在,便把該文件作為php程序執行了。

3. 漏洞修復

1)對新建目錄文件名進行過濾,不允許新建包含‘.’的文件;

2)曲線網站后臺新建目錄的功能,不允許新建目錄;

3)限制上傳的腳本執行權限,不允許執行腳本;

4)過濾.asp/xm.jpg,通過ISApi組件過濾。

相關閱讀

微軟IIS可遠程執行代碼的高危漏洞http.sys

 

分享:
0

相關文章

沒有相關文章!

寫一條評論

 

 

0條評論