日期:2009-05-09  浏览次数:20859 次

  ASP的漏洞已经算很少的了,想要找到数据库的实际位置也不简单,但这不表明黑客无孔可入,也正是这个观点,一般的程序设计员常常忘记仔细的检查是否有漏洞,所以才有可能导致网站资料被窃取的事件发生。今天我在这里和大家谈谈ASP常见的安全漏洞,以引起大家的重视及采取有效的防范措施。(注意,在本文中所介绍的方法请大家不要试用,请大家自觉遵守网络准则,谢谢!)

  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 就给别人留了后门。

  例如,通过利用这个简单的参数,就会显示它所在的系统的时间。日期是自动从系统取得的,而以网页的方式传送出来。通过浏览器回询这个网页,我们不会看到刚刚的程序代码,而是看到程序代码的执行结果,或许在所有网络安全漏洞里面,最不受重视的就是未经过解析的文件内容或程序代码无意中被显示出来的安全漏洞。简单的说,这些安全漏洞允许使用者从网页服务器骗取动态网页里面的程序代码。

  以前最早人们利用 ASP安全漏洞的方式,就是利用 Windows NT 的数据传输串行的特性去存取档案。你只要利用一个最简单的参数(::$DATA)你就可以看到 ASP 的原始程序了。

  例如,以下的 URL:
  http://10.1.1.11/login.asp::$DATA
  你会取得一个叫做login.asp的档案中未经过解析的 ASP 程序代码。因为这个 URL 字符串并没有以 .asp 做结束,IIS 就没有办法决定这个被回询的档案是否为一个 ASP 档。

  显示的程序代码如下:
xxxx
alert("请输入您的 密码!!")
}
else {
document.f1.action="checkuser.asp" 
document.f1.submit()
}
}
xxxx

  注:checkuser.asp 就是检查帐号密码的东西!