ASP 常见的安全漏洞 |
日期:2006-08-11 |
ASP 的漏洞已经算很少的了,想要找到数据库的实际位置也不简单,但这不表明黑客无孔可入,也正是这个观点,一般的程序设计员常常忘记仔细的检查是否有漏洞,所以才有可能导致网站资料被窃取的事件发生。今天我在这里和大家谈谈 ASP 常见的安全漏洞,以引起大家的重视及采取有效的防范措施。(注意,在本文中所介绍的方法请大家不要试用,请大家自觉遵守网络准则,谢谢!) 例如,通过利用这个简单的参数,就会显示它所在的系统的时间。日期是自动从系统取得的,而以网页的方式传送出来。通过浏览器回询这个网页,我们不会看到刚刚的程序代码,而是看到程序代码的执行结果,或许在所有网络安全漏洞里面,最不受重视的就是未经过解析的文件内容或程序代码无意中被显示出来的安全漏洞。简单的说,这些安全漏洞允许使用者从网页服务器骗取动态网页里面的程序代码。 以前最早人们利用 ASP 安全漏洞的方式,就是利用 Windows NT 的数据传输串行的特性去存取档案。你只要利用一个最简单的参数(::$DATA)你就可以看到 ASP 的原始程序了。 例如,以下的 URL:http://10.1.1.11/login.asp::$DATA,你会取得一个叫做 login.asp 的档案中未经过解析的 ASP 程序代码。因为这个 URL 字符串并没有以 .asp 做结束,IIS 就没有办法决定这个被回询的档案是否为一个 ASP 档。 显示的程序代码如下: 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 里面的原始程序代码: 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: 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,就等于取得了整个网站大门的钥匙。 例如,利用以下的 URL:http://10.11.11.15/global.asa+.htr 可以取得 10.11.11.15 上面的 global.asa 档案。注意那个数据库连接字符串中的 UID 和 PWD。这给了黑客一个使用者名称以及密码: SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Microsoft 已经以修正这项安全漏洞。 在.htr 安全漏洞得到修正之后,黑客们又找到了新的切入点:Translate: f 模块的安全漏洞。Translate: f 模块是 Microsoft 为了 FrontPage 2000 以及 FrontPage 2000 Server extensions on Windows 2000 而设计的 WebDAV 的一部份。如果一个反斜线(\)被附加到所要求的档案资源之后,而且 Translate: f 模块在提出回询的 HTTP 表头标题里面,那么网页服务器就会回传完全未经处理的 ASP 原始程序代码。 下面是一个使用 Netcat(相关网址:http://www.l0pht.com/~weld/netcat/)送出回询的 HTTP 表头,可以用来取得 10.11.11.15 上面 default.asp 的原始程序代码: $ nc10.11.11.1580 注意:在 GET 回询中,用了 %5C。反斜线字符(\)的十六位 ASCII 码表示方式就是 %5C。 这个方法,在 ASP 以及 ASA 的档案里面都可以使用。另外,在 IIS 4.0 上安装运行 FrontPage 2000 Server extensions 会存在这种安全漏洞。如果你相进一步了解该项安全漏洞的更多信息,可以在 http://www.securityfocus.com/bid/1578,此外 Microsoft 也已经公布了修复的 patch (下载网址:http://download.microsoft.com/download/win2000platform/Patch/Q256888/NT5/EN-US/Q256888_W2K_SP1_x86_en.EXE。) 结论: 系统架设时的不小心,程序编写时的不注意,往往就是可能导致泄密的主因。为了减少你的网页服务器不会再遭受这种安全漏洞的威胁,你要确定你的网页服务器没有任何会泄漏珍贵信息的程序或不必要的 script 以及档案,只安装你需要的东西,并且定期使用安全检测软件对服务器进行检查,到网上了解最新的系统安全消息和知识。 |
相关文章
- 12-02useradd 命令的常见用法
- 12-02Window questions-concerned(windows下常见的问题解决)
- 12-02知行教育---Hive的常见函数(07)
- 12-02Nginx中常见的模块及其作用
- 12-02Unity3D 一个较常见的错误信息“rect[2] == rt->GetGLWidth() && rect[3] == rt->GetGLHeight()”
- 12-02常见数据类型在codeblocks编译环境下占用内存空间的大小
- 12-02Python从入门到实战代码行行标注----几种常见的Tensor
- 12-02Go-常见的面试题(一)
- 12-02Hadoop, Hadoop涉及到的一些常见概念(分布式与集群、HDFS、MapReduce等),Hadoop怎么用?
- 12-02常见的压缩命令