通过ASP入侵Web服务器、窃取敏感文件、甚至彻底瘫痪整个系统——这听起来像电影情节,但绝非危言耸听。IIS的安全隐患,尤其是ASP相关的漏洞,多年来一直是攻击者重点突破的薄弱环节。下面就来详细剖析几个典型的ASP安全风险,帮助站长提升服务器防护意识。
1. IIS3/PWS的漏洞
以Windows 98上的PWS为例,运行ASP程序时,只需在浏览器地址栏的URL末尾多加一个小数点,ASP源代码就会直接暴露无遗。IIS3据说也存在类似漏洞,尽管实际测试中未能成功复现。但无论如何,这类漏洞的存在意味着:你的核心代码可能被轻易“看光”,从而为后续攻击提供便利。
2. IIS4的漏洞
IIS4最广为人知的漏洞与 ::$DATA 有关——在ASP文件的URL后面加上这几个字符,攻击者就能完整读取文件内容,通过IE的“查看源代码”功能即可获取全部ASP代码。Windows 98的PWS 4则没有暴露此问题。解决该漏洞主要有三种途径:一是将网站目录设置为“不可读”(但ASP仍能正常执行),不过这样HTML文件就不能放在该目录下,否则无法正常浏览;二是安装微软官方安全补丁;三是在服务器上依次安装SP3、IE 4.01 SP1、Option Pack SP4,以彻底修复漏洞。
3. 支持ASP的免费主页面临的安全隐患
你的ASP代码可能被他人非法获取。ASP 1.0的示例中有一个文件 /ASPSamp/Samples/code.asp,专门用于查看ASP源代码。如果有人将此文件上传到服务器,他就可以随意查看其他用户的程序——例如通过 code.asp?source=/someone/aaa.asp 来读取任意文件。既然代码能够获取,数据库文件的存储路径自然也随之暴露。如果数据库采用Access且密码未做加密处理,后果将非常严重。站长应采取以下措施:严格禁止类似 code.asp 的程序存在(虽然难以完全杜绝,但可以通过定期检索特征代码来发现风险),同时限制MDB文件的直接下载(尽管技术上存在一定难度,但仍值得尝试)。
4. 来自FileSystemObject的威胁
IIS4的ASP通过FileSystemObject组件可以实现丰富的文件操作——读取、写入、目录管理、文件复制、重命名、删除等,功能强大,但安全隐患同样巨大。利用FileSystemObject,攻击者可以篡改甚至删除FAT分区上的任何文件。即便在NTFS分区上,如果权限设置不当,同样能造成严重破坏。遗憾的是,许多站长只关心服务器能否正常运行,很少对NTFS权限进行精细化配置。例如,一台提供虚拟主机服务的服务器,如果权限没有严格设定,用户可能轻松篡改或删除机器上的任何文件,甚至导致NT系统崩溃。具体的利用程序这里不再详述。
作为站长,应将Web目录建立在NTFS分区上,非Web目录不要使用Everyone完全控制权限,而应仅授予Administrator完全控制权限,从而有效降低FileSystemObject带来的风险。
