编程开发 > ASP > 文章内容

转:ASP常见的安全漏洞

2010-8-4编辑:feimeimei
  ASP常见的安全漏洞
  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 就是检查帐号密码的东西!
  当然了,并非所有的程序代码上安全漏洞都归咎于网页服务器软件。例如,如果你采用典型安装 Widows NT Option Pack 4.0的话,安装程序会将Exploration Air 安装上去,这是提供给 ASP 程序设计员当范例用的网站应用软件程序。其中Widows NT Option Pack 4.0的 showcode.asp 档案会将 Exploration Air 范例网站的原始程序代码整齐的显示出来。由于在程序里面并没有严格的权限检验程序,一个有经验的访客就可以猜到文件名称以及它们的目录路径,他就可以利用 showcode.asp 将任何在档案系统里面的档案读取。
  这个黑客只要在他的浏览器里面用URL字符串,指定正确的文件名称以及目录路径当作 showcode.asp 的参数就可以了。例如,以下的 URL 可以让黑客看到在10.11.11.15服务器上default.asp 里面的原始程序代码:
  http://10.11.11.15/msadc/Samples/SELECTOR/showcode.asp?source=/
  msadc/Samples/../../../../../inetpub/wwwroot/default.asp
  msadc/Samples/SELECTOR/showcode.asp 这是一个 FSO 的范例程序,主要用意在教您如何使用 FSO 去 View ASP 的 Source ,程序中虽然有限定只能 View /msadc/samples/ 下的档案。但是利用 MapPath 中回到上一层的语法来加以破解。(你可用一连串的 ../ 来跳到档案系统的最顶层,然后将在其它目录的档案窃取出来,当然要先经过存取权这一关才可以。)
  架设有服务器的朋友可以试试看这个 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:
让你的IIS无懈可击

热点推荐

登录注册
触屏版电脑版网站地图