Microsoft 的 Internet Information Server(IIS)提供利用 Active Server Pages(ASPs)而动态产生的网页服务。一个ASP文件,就是一个在 HTML 网页中,直接内含程序代码的文件。回询(request)一个 ASP 文件,会促使 IIS 运行网页中内嵌的程序代码,然后将其运行结果直接回送到浏览器上面。另一方面,静态的 HTML 网页,是按照其原来的样子回传到浏览器上面,没有经过任何的解析处理。在这里,IIS 是利用档案的附加档名来区别档案的型态。一个附加档名为 .htm 或 .html 的档案是属于静态的 HTML 档案,而附加档名为 .asp 的档案则为一个Active Server Pages 档案。正因为如此,这一个Active Server Pages 就给别人留了后门。
当然了,并非所有的程序代码上安全漏洞都归咎于网页服务器软件。例如,如果你采用典型安装 Widows NT Option Pack 4.0的话,安装程序会将Exploration Air 安装上去,这是提供给 ASP 程序设计员当范例用的网站应用软件程序。其中Widows NT Option Pack 4.0的 showcode.asp 档案会将 Exploration Air 范例网站的原始程序代码整齐的显示出来。由于在程序里面并没有严格的权限检验程序,一个有经验的访客就可以猜到文件名称以及它们的目录路径,他就可以利用 showcode.asp 将任何在档案系统里面的档案读取。
架设有服务器的朋友可以试试看这个 Link ,试试能不能看到你根目录底下的档案 ,如果可以,那你就该注意了!
而在IIS 5.0 的安全漏洞,其中之一就是利用 .htr 控制模块(handler)解析档案能力的安全漏洞了。IIS 的 Internet Service Manager 使用 ism.dll 来处理 .htr 档案。IIS 本身则使用 asp.dll 来处理 ASP 档案。利用 .htr 的安全漏洞,黑客可以将任何档案(包括 .asp 档,.asa 档等等)用 ism.dll 处理,而非用 asp.dll 处理。而因为 ism.dll 并非被设计用来处理 ASP 的 tag,它便直接把原始程序代码显示出来。要想利用这个安全漏洞,远程的黑客们只要在他们的 URL字符串的尾巴加上 +.htr。例如,要在10.11.11.15上看 default.asp 的原始程序代码,一个黑客可以用下面的 URL:
http://10.11.11.15/default.asp+.htr
这时你只要在浏览器的菜单栏,选择“查看/源文件”就可以看到 ASP的程序,一切都很简单,防火墙挡不住这个。不过,和showcode.asp不一样的是,这个漏洞不能让黑客们直接在网站服务器文件根目录之外窃取出指定的档案。另外,如果 ASP 文档有 的卷标,这个方法运作起来也不会很顺利。在碰到 % 符号时,输出结果会被终止掉。因此,利用这个漏洞所能窃取的一般是使用 SCRIPT RUNAT="SERVER" ... /SCRIPT 卷标的 ASP 文件。
一般说来,在任何一个建在 IIS ASP 以及 SQL Server 之上的网站中,让黑客感兴趣的资料是global.asa。这个global.asa 档案是存在于网站文件根目录之下,它含有一些网页应用程序的设定参数。设定的参数可以包括事先定义好的变量,数据库使用者识别码及密码,系统名称,以及数据库服务器地址。一旦黑客们取得 global.asa,就等于取得了整个网站大门的钥匙。
SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
Set Db = Server.CreateObject("Commerce.DbServer")
Db.ConnectionString = "DSN=trans.db;UID=sa;PWD=n0t4u2c"
Db.Application = http://10.11.11.15/
Set Application("Db") = Db
End Sub
Sub Session_OnStart
'==Visual InterDev Generated - DataConnection startspan==
'--Project Data Connection
Session("DataConn_ConnectionString") =
"DSN=CertSrv;DBQ=C:\WINNT2\System32\CertLog\certsrv.mdb;DriverId=25;
FIL=MS Access;MaxBufferSize=512;PageTimeout=5;"
Session("DataConn_ConnectionTimeout") = 15
Session("DataConn_CommandTimeout") = 30
Session("DataConn_RuntimeUserName") = ""
Session("DataConn_RuntimePassword") = ""
'==Visual InterDev Generated - DataConnection endspan==
End Sub
/SCRIPT
Microsoft 已经以修正这项安全漏洞。
在.htr 安全漏洞得到修正之后,黑客们又找到了新的切入点:Translate: f 模块的安全漏洞。Translate: f 模块是 Microsoft 为了 FrontPage 2000 以及 FrontPage 2000 Server extensions on Windows 2000 而设计的 WebDAV 的一部份。如果一个反斜线(\)被附加到所要求的档案资源之后,而且 Translate: f 模块在提出回询的 HTTP 表头标题里面,那么网页服务器就会回传完全未经处理的 ASP 原始程序代码。