ASP网络安全手册(1)

发表于:2007-06-30来源:作者:点击数: 标签:
来源:www.cpcw.com 一 前言 Microsoft Active Server Pages(ASP)是 服务器 端脚本编写环境,使用它可以创建和运行动态、交互的 Web 服务器应用程序。使用 ASP 可以组合 HTML 页 、脚本命令和 ActiveX 组件以创建交互的 Web 页和基于 Web 的功能强大的应用
来源:www.cpcw.com

一 前言

  Microsoft Active Server Pages(ASP)是服务器端脚本编写环境,使用它可以创建和运行动态、交互的 Web 服务器应用程序。使用 ASP 可以组合 HTML 页 、脚本命令和 ActiveX 组件以创建交互的 Web 页和基于 Web 的功能强大的应用程序。
现在很多网站特别是电子商务方面的网站,在前台上大都用ASP来实现。以至于现在ASP在网站应用上很普遍。
ASP是开发网站应用的快速工具,但是有些网站管理员只看到ASP的快速开发能力,却忽视了ASP安全问题。ASP从一开始就一直受到众多漏洞,后门的困扰,包括%81的噩梦,密码验证问题,IIS漏洞等等都一直使ASP网站开发人员心惊胆跳。
本文试图从开放了ASP服务的操作系统漏洞和ASP程序本身漏洞,阐述ASP安全问题,并给出解决方法或者建议。

二 关键字

  ASP,网络安全,IIS,SSL,加密。

三 ASP工作机理

  Active Server Page技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。ASP脚本是采用明文(plain text)方式来编写的。

  ASP脚本是一系列按特定语法(目前支持vbscript和jscript两种脚本语言)编写的,与标准HTML页面混合在一起的脚本所构成的文本格式的文件。当客户端的最终用户用WEB浏览器通过INTERNET来访问基于ASP脚本的应用时,WEB浏览器将向WEB服务器发出HTTP请求。WEB服务器分析、判断出该请求是ASP脚本的应用后,自动通过ISAPI接口调用ASP脚本的解释运行引擎(ASP.DLL)。ASP.DLL将从文件系统或内部缓冲区获取指定的ASP脚本文件,接着就进行语法分析并解释执行。最终的处理结果将形成HTML格式的内容,通过WEB服务器"原路"返回给WEB浏览器,由WEB浏览器在客户端形成最终的结果呈现。这样就完成了一次完整的ASP脚本调用。若干个有机的ASP脚本调用就组成了一个完整的ASP脚本应用。
  让我们来看看运行ASP所需的环境:
Microsoft Internet Information Server 3.0/4.0/5.0 on NT Server
Microsoft Internet Information Server 3.0/4.0/5.0 on Win2000
Microsoft Personal Web Server on Windows 95/98
  WINDOWS NT Option Pack所带的Microsoft IIS提供了强大的功能,但是IIS在网络安全方面却是比较危险的。因为很少有人会用Windows 95/98当服务器,因此本文我更多的从NT中的IIS安全问题来探讨。


四 微软自称的ASP的安全优点

  虽然我们本文的重点是探讨ASP漏洞和后门,但是有必要谈谈ASP在网络安全方面的"优点",之所以加个"",是因为有时这些微软宣称的"优点"恰恰是其安全隐犯。

  微软称ASP在网络安全方面一大优点就是用户不能看到ASP的源程序,从ASP的原理上看,ASP在服务端执行并解释成标准的HTML语句,再传送给客户端浏览器。"屏蔽"源程序能很好的维护ASP开发人员的版权,试想你辛辛苦苦做了一个很优秀的程序,给人任意COPY,你会怎么想?而且黑客还能分析你的ASP程序,挑出漏洞。更重要的是有些ASP开发者喜欢把密码,有特权的用户名和路径直接写在程序中,这样别人通过猜密码,猜路径,很容易找到攻击系统的"入口"。但是目前已经发现了很多能查看ASP源程序的漏洞,后面我们还要讨论。

  IIS支持虚拟目录,通过在"服务器属性"对话框中的"目录"标签可以管理虚拟目录。建立虚拟目录对于管理WEB站点具有非常重要的意义。虚拟目录隐藏了有关站点目录结构的重要信息。因为在浏览器中,客户通过选择"查看源代码",很容易就能获取页面的文件路径信息,如果在WEB页中使用物理路径,将暴露有关站点目录的重要信息,这容易导致系统受到攻击。其次,只要两台机器具有相同的虚拟目录,你就可以在不对页面代码做任何改动的情况下,将WEB页面从一台机器上移到另一台机器。还有就是,当你将WEB页面放置于虚拟目录下后,你可以对目录设置不同的属性,如:Read、Excute、Script。读访问表示将目录内容从IIS传递到浏览器。而执行访问则可以使在该目录内执行可执行的文件。当你需要使用ASP时,就必须将你存放.asp文件的目录设置为"Excute(执行)"。建议大家在设置WEB站点时,将HTML文件同ASP文件分开放置在不同的目录下,然后将HTML子目录设置为"读",将ASP子目录设置为"执行",这不仅方便了对WEB的管理,而且最重要的提高了ASP程序的安全性,防止了程序内容被客户所访问。

原文转自:http://www.ltesting.net