找回密码
 注册
搜索
热搜: 回贴

7.5 ASP (IIS)的漏洞及防范措施(2)

2010-1-12 20:27| 发布者: admin| 查看: 546| 评论: 0|原作者: 玄霄

7.5 ASP (IIS)的漏洞及防范措施(2)
5. 输入标准的HTML语句或者 JavaScript语句会改变输出结果
问题描述:
浏览网页的时候,你有没有试过在表单的文字输入框中打入标准的HTML语句会得到什么相的结果呢?比如有一个留言本,我们留言内容中打入以下内容:
你好!



那么如果WEB服务器ASP程序中没有屏蔽html语句,就会改变“你好”字体的大小为“10”。在留言本中改变字体大小和贴图有时并不是什么坏事,反而可以使留言本生动。但是如果在输入框中写个JavaScript的死循环,比如输入以下代码: 特大新闻



那么当其他查看该留言的客人移动鼠标到“特大新闻”上的时候,就会使用户的浏览器因死循环而当机。
解决方法和建议:
编写类似程序时应该做好对此类操作的防范,譬如可以写一段程序判断客户端的输入数据,并屏蔽掉所有的HTML、JavaScript 语句。
6. ASP程序密码验证漏洞
漏洞描述:
目前很多网站把密码放到了SQL数据库中,在登陆验证中常使用以下的代码。
sql="select * from user where

username=`"&username&"`and pass=`"& pass &`"



此时只要根据SQL构造一个特殊的用户名和密码,如:ben` or `1`=`1,这样程序将会变成下面的样子:

sql="select*from username where username

="&ben`or`1`=1&"and pass="&pass&"


其中 or 是一个逻辑运算符,作用是在判断两个条件的时候,只要其中一个条件成立等式将会成立,而在语言中是以1来代表真的(成立),那么在这行语句中,原语句的“and”验证将不再继续,而因为“1=1”和“or”令语句返回为真值.。
另外我们也可以构造以下的用户名:
username=`aa` or username<>`aa`

pass=`aa` or pass<>`aa`





相应的在浏览器端的用户名框内写入:aa` or username<>`aa ,在口令框内写入:aa` or pass<>`aa,注意这两个字符串两头是没有“`”的,这样,我们就可以成功的骗过系统而调用数据库了。
后一种方法实践有一定的困难,下面两个条件都必须具备。
(1)首先要能够准确的知道系统在表中是用哪两个字段存储用户名和口令的,只有这样你才能准确的构造出这个进攻性的字符串。实际上这是很难猜中的;
(2)系统对你输入的字符串不进行有效性检查。
问题解决和建议:
对输入的内容验证和“`”号的处理。
7. IIS4或者IIS5中安装有INDEX SERVER服务会泄漏ASP源程序
问题描述:
在运行IIS4或IIS5的Index Server时,输入特殊的字符格式可以看到ASP源程序或者其他页面的程序。甚至能获得其中的 ASP 程序、global.asa 文件等的源代码。这对系统无疑又是一个非常重大的安全隐患,因为这些代码中可能包含了用户 ID 和密码,以及数据库的源路径和名称等等,这对于攻击者收集系统信息,进行下一步攻击都是非常有利的。
可以参看程序源代码的特殊命令行:

http://202.116.26.38/null.htw?CiWebHitsFile=/default.asp&CiRestriction=none&CiHiliteType=Full
这样只是返回一些html格式的文件代码,但如果你添加 到CiWebHitsFile的参数后面以后,就可以获得程序的源代码了。相应的命令行如下:
http://someurl/null.htw?CiWebHitsFile=/default.asp &CiRestriction=none&CiHiliteType=Full
由于null.htw文件并非真正的系统映射文件,所以只是一个储存在系统内存中的虚拟文件。哪怕你已经从你的系统中删除了所有的真实的.htw文件,但是由于对null.htw文件的请求默认是由webhits.dll来处理。所以,IIS仍然收到该漏洞的威胁。
防范措施:
如果该webhits提供的功能是系统必须的,请下载相应的补丁程序。如果没必要,请用IIS的MMC管理工具简单移除.htw的映象文件。
8. HTR文件漏洞
漏洞描述:
IIS支持多种需要服务器端处理的文件类型,譬如:ASP、ASA、IDC、HTR,当一个WEB用户从客户端请求此类文件时,相应的DLL文件将自动对其进行处理。然而在ISM.DLL这个负责处理HTR文件的文件中被发现存在严重的安全漏洞(注:HTR 文件本身是用来远程管理用户密码的)。该漏洞包含了一个在ISM.DLL中未经验证的缓冲,它可能对WEB服务器的安全运作造成两方面的威胁。
首先是来自服务拒绝攻击的威胁,一个来自非正常的对“.HTR”文件请求将使缓存溢出,从而直接导致IIS崩溃,当这种情况发生时,无须重启服务器,但是IIS WEB服务器必须重新启动;
另一个威胁更令人头痛,通过使用一个精心构建过的文件请求将可以利用标准的缓存溢出手段导致2进制代码在服务器端运行,在这种情况下,什么情况都可能发生!
该漏洞不包括提供用来管理用户密码功能的“.HTR”文件。
漏洞分析:
我们推测溢出将在IIS把完整的URL传递给DLL去处理扩展名时发生的,而且至少在一个IIS的扩展名中(例如:ASP、IDC、HTR)存在溢出。如果ISAPI DLL没有正确的检查限制范围,从而导致inetinfo.一个溢出,用户就从可以在远端执行2进制代码。
攻击方法:
向IIS发一个如下的HTTP请求:“GET /[overflow].htr HTTP/1.0”,就可以使IIS崩溃。这里的“[overflow]”

可以是3KB长的代码。
大家可能对“.HTR”文件不是很熟悉,其实IIS具有让Windows NT用户通过WEB目录“/iisadmpwd/”可以更改自己的口令的能力。而这个功能正是由一组“.HTR”文件和 ISAPI 的一个扩展 ism.dll 来实现的。当一个完整的URL传递到ism.dll时,由于没有适当的大小限制检查,就会导致溢出产生,从而使服务器崩溃。
防范措施:
由于目前微软尚未发布可供使用的补丁程序,因此我们只能做一些应急的防范。
(1)将“.HTR”扩展名从ISAPI DLL 的列表中删除,方法如下:
在你的Windows NT桌面上,点击【开始】→【程序】→【Windows NT 4.0 Option Pack】→【Microsoft Internet Information Server】→【Internet 服务管理器】;双击【Internet Information Server】 ;鼠标右键单击计算机名称并选择【属性】;在【主属性】下拉式菜单中选择“WWW 服务”并点击【编辑】按钮;选择【主目录】文件夹,并点击【配置】按钮,在【应用程序映射】列表框中选中“.HTR“的相关映射,选择【删除】并单击【确定】;
(2)使用最新版本的Microsoft Internet Information Server4.0,并安装Windows NT最新版本的ServicePack5,服务器的文件系统不要使用FAT,应该使用NTFS;
(3)把IIS中的sample、scripts、iisadmin和msadc等WEB目录设置为禁止匿名访问并限制IP地址。在微软还没有提供补丁之前,把ism.dll有关的应用程序映射删除;
(4)有条件的话就采用防火墙机制,最简单的如 web 服务开在前台,目录放在后台,如果能做到一个服务一台机当然最好;
(5)WEB目录、CGI目录、Scripts目录和winnt目录等重要目录要用NTFS的特性设置详细的安全权限,包含注册表信息的Winnt目录只允许管理员完全控制,而对普通用户就全部进行限制。凡是与系统有关的重要文件,除了Administrator,其他帐号都应该设置为只读权限;
(6)只打开必需的服务,block 掉所有不应该打开的端口,如 NetBios 端口 139,这是一个典型的危险端口;除了使用防火墙外,Windows NT的TCP/IP设置里面也能关闭端口;
(7)管理员的帐号要设置得复杂一些,建议加入特殊字符;
(8)把FTP,Telnet的TCP端口改为非标准端口,通常都是设置到10000~65000的范围 ;
(9)删除可以删除的所有共享,包括打印机共享和隐藏的共享如ICP$、Admin$等,下面就是一些特殊的共享资源,微软说这些特殊共享资源很重要,大多数情况下不能删除,而实际上 Internet 服务器大多数不需要共享。
IPC$: 适用于远程管理计算机和查看共享资源,在网上最好不要用 ;
Admin$: 实际上就是 c:\winnt,也没有必要共享 ;
C$: 登录为Admin和Backup-operator的用户可以用“\\计算机名\C$”的方式访问C盘,虽然仅限于局域网,但是远程黑客也有办法伪装成局域网的登录用户,所以都应该关掉;
Print$:这是放打印机驱动程序的目录,与上面的一样也是个很危险的入口;
Netlogon: 这是处理域登录请求的共享。如果你的机器为主域控制器,域内有其他机器要登录进来,就不要删除它,否则照样可以删除。
(10)将ASP的目录集中管理,ASP的程序目录应设置详尽的访问权限,一般建议不要使用“读”权限;
(11)把winnt下的“sam._”文件改名,其实这个可能泄露密码的文件可以删除不要;
(12)对于已知的Windows NT安全漏洞,都应该在自己的机器上做测试检查,并及时安装补丁程序;
(13)有必要的情况下采用IIS4.0提供的SSL安全通信机制来防止数据在网上被截获。


最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 09:34 , Processed in 0.196553 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部