微软在推出 ASP 时提到的 ASP 的一个好处是:Active Server Pages 的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。然而,由于 NT、IIS 以及 ASP 系统本身存在的一些漏洞,却可能使 ASP 源码暴露无遗,下面介绍目前已经被公开的三种漏洞及解决方法。
【方法一】NT 系统自带的 ASP 例程:showcode.asp、code.asp 或 codebrws.asp
这个例程可以用来显示服务器上任意文本文件,包括 ASP。使用此法调用: http://www.server.com/msadc/Samples/SELECTOR/showcode.asp?source=/msadc/Samples/SELECTOR/showcode.asp
source 用于指定欲查看的文件。
解决方法:在服务器上删除这些例程,对于网络上的服务器来说,这些例程是没有任何用处的。另外也可以在“Internet 服务管理器”中,把“默认Web站点”下由 NT 自动建立的那些虚拟目录全部删除或改成难以被猜测到的名字。如:Scripts 目录、IISAdmin 目录、IISSamples 目录、MSADC 目录、IISHelp 目录、Webpub 目录、_vti_bin 目录、Printers 目录等。
【方法二】在 .asp 文件名后加上特殊字符串
假设要查看 http://www.server.com/file.asp 的源文件,可以在 file.asp 后面加上一些特殊字符串,如果系统漏洞未被补上的话,就会显示出源代码(可以通过浏览器的“查看”“源文件”看到)。这些字符串有以下这些:
1. http://www.server.com/file.asp. (适用于 Win 95下的 PWS 3.0)
2. http://www.server.com/file.asp::$DATA
3. http://www.server.com/file.asp%81或%82
4. http://www.server.com/file.asp%e9或者%e8
5. http://www.server.com/file.asp&2e
6. http://www.server.com/file%2e%41sp
7. http://www.server.com/file%2e%asp
解决方法:给 NT 4.0 打 SP5 或 SP6。每当在服务器上安装软件后(如:IE5、Office等软件)都必须重新再打一遍 SP5 或 SP6,否则漏洞可能再次出现。如果暂时找不到 SP5 或 SP6,可以在 IIS 中把 ASP 程序所在的目录的“读取”权限去掉,只给“脚本运行”的权限,这样也可以防止此漏洞,但是如果该目录下有 .htm 及图片等文件,这样做会导致该目录下的 .htm 及图片不能被读取。
【方法三】微软 Index Server 的 null.htw 漏洞
null.htw 文件并非真正的系统映射文件,所以只是一个储存在系统内存中的虚拟文件。哪怕你已经从你的系统中删除了所有的真实的 .htw 文件,但是由于对 null.htw 文件的请求默认是由 webhits.dll 来处理。
假设要查看 http://www.server.com/dir/file.asp 的源代码,可以用此法:
http://www.server.com/null.htw?CiWebHitsFile=/dir/file.asp%20&CiRestriction=none&CiHiliteType=Full
如果此漏洞未被堵上的话,就能看到 file.asp 的源代码了。/dir/file.asp 为要查看源代码的文件,必须从“/”目录算起。
解决方法:
绝大多数的网站并不需要 webhits.dll ,因此,可以打开“Internet 服务管理器” --> 选择“默认Web站点”(或者是你自己建立的站点我名称) --> 用鼠标右击,在弹出菜单中选择“属性” --> 选择“主目录”选项卡 --> 点击“配置” --> 选择“应用程序映射” --> 找到“扩展名”为 .htw .ida .idq .htr 这些行,点击“删除”将其映射从服务器上移去。也可将扩展名改成其他的名字,以备日后需要时恢复。
如果 webhits 提供的功能是系统必须的,请下载相应的补丁程序。
For Index Server 2.0 ( NT 4.0 下的 IIS 4.0 )
补丁:http://www.microsoft.com/downloads/release.asp?ReleaseID=17727
For Windows 2000 Indexing Services ( IIS 5.0 )
补丁:http://www.microsoft.com/downloads/release.asp?ReleaseID=17726