精华区 [关闭][返回]

当前位置:月光软件>>讨论区精华>>〖软件开发〗>>● ASP>>★ASP的安全★>>ASP网络安全手册(三)

主题:ASP网络安全手册(三)
发信人: gss_wc(天人)
整理人: dongbao(2001-04-08 09:39:10), 站内信件
18、MS ODBC数据库连接溢出导致NT/9x拒绝服务攻击 

漏洞描述: 

Microsoft ODBC数据库在连接和断开时可能存在潜在的溢出问题(Microsoft ACCESS数据库相关)。 
如果不取消连接而直接和第二个数据库相连接,可能导致服务停止。 

影响系统: 

ODBC 版本: 3.510.3711.0 
ODBC Access驱动版本: 3.51.1029.00 
OS 版本: Windows NT 4.0 Service Pack 5, IIS 4.0 (i386) 
Microsoft Office 97 Professional (MSO97.dll: 8.0.0.3507) 

漏洞检测方法如下: 

ODBC 连接源名称: miscdb 
ODBC 数据库型号: MS Access 
ODBC 假设路径: d:\data\misc.mdb 

ASP代码如下: 

<%
set connVB = server.createobject("ADODB.Connection")
connVB.open "DRIVER={Microsoft Access Driver (*.mdb)}; DSN=miscdb"

%> 

<html> 
<body> 
…lots of html removed… 
<!-- We Connect to DB1 --> 
<%
set connGlobal = server.createobject("ADODB.Connection")
connGlobal.Open "DSN=miscdb;User=sa"
mSQL = "arb SQL Statement"
set rsGlobal = connGlobal.execute(mSQL)
While not rsGlobal.eof
Response.Write rsGlobal("resultfrommiscdb")
rsGlobal.movenext
wend
'rsGlobal.close
'set rsGlobal = nothing
'connGlobal.close
'set connGlobal = nothing
' Note we do NOT close the connection
%> 

<!-- Call the same database by means of DBQ direct file access --> 
<%
set connGlobal = server.createobject("ADODB.Connection")
connGlobal.Open "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=d:\data\misc.mdb"
mSQL = "arb SQL Statement"
set rsGlobal = connGlobal.execute(mSQL)

While not rsGlobal.eof
Response.Write rsGlobal("resultfrommiscdb")
rsGlobal.movenext
wend
rsGlobal.close
set rsGlobal = nothing
connGlobal.close
set connGlobal = nothing
' Note we DO close the connection
%> 

在这种情况下,IIS处理进程将会停顿,CPU使用率由于inetinfo.exe进程将达到100%。只有重新启动计算机才能恢复。 


19、ASP主页.inc文件泄露问题 

漏洞描述: 

受影响的版本:任何提供ASP服务的系统 
远程:YES / 本地:YES 

内容摘要: 

当存在asp的主页正在制作并没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象,如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中察看到数据库地点和结构的细节揭示完整的源代码。 
具体操作过程是: 

- 利用搜索引擎查找包含+"Microsoft VBScript 运行时刻错误执行搜索" +".inc ," 的关键字 
- 搜索引擎会自动查找包含asp的包含文件(.inc)并显示给用户 
- 利用浏览器观看包含文件的源代码,其中可能会有某些敏感信息 

漏洞的利用: 

例子: 
- http://shopping.altavista.com/inc/lib/prep.lib 
暴露数据库连接和性质, 资源地点, 小甜饼逻辑,服务器 IP 地址 
- http://www.justshop.com/SFLib/ship.inc 
暴露数据库性质 
- http://www.bbclub.com:8013/includes/general.inc 
暴露 cobranding 
- http://www.salest.com/corporate/admin/include/jobs.inc 
暴露 datafile 地点和结构 
- http://www.bjsbabes.com/SFLib/design.inc 
包括数据库结构为 StoreFront 2000 暴露源代码 
- http://www.ffg.com/scripts/IsSearchEngine.inc 
暴露搜索引擎记录文件 
- http://www.wcastl.com/include/functions.inc 
暴露成员电子邮件地址 
- http://www.wcastl.com/flat/comments.txt 
暴露成员私人的注释文件 
- http://www.traveler.net/two/cookies.inc 
暴露 cookie 逻辑 

解决方案: 

- 搜索引擎应该不索引有 asp 运行时刻错误的页 
- 程序员应该在网页发布前对其进行彻底的调试 
- 安全专家需要固定 asp 包含文件以便外部的用户不能看到它们 
asp 新闻组、站点提供两个解决方案对这个漏洞进行修正,首先对 .inc 文件内容进行加密,其次也可以使用 .asp 文件代替 .inc 文件使用户无法从浏览器直接观看文件的源代码。.inc 文件的文件名不用使用系统默认的或者有特殊含义容易被用户猜测到的,尽量使用无规则的英文字母。 


20、利用Activer server explorer可对文件进行读写访问 

漏洞描述: 

chinaasp的Activer server explorer可以很方便的对本地文件在线查看服务器上的目录 在线查看文件的名称、大小、类型、修改时间,在线编辑纯文本文件,如.txt、.htm、.asp、.pl、.cgi等等,直接执行服务器上的文件。 
Activer server explorer要求填写相对路径或者绝对路径,但是假如:有一个攻击者把Activer server explorer上传到目标服务器上的某个目录,并且这个目录支持ASP的话,那么他就可以通过Activer server explorer修改、执行目标服务器上的文件。这种情况可以发生在一个攻击者拥有目标NT服务器上的一个可写目录帐号,并且这个目录又支持ASP。比如一些支持ASP的个人免费主页服务器,把Activer server explorer先传上你申请的免费主页空间,再通过各种方法得到目标服务器的路径,(比如可通过漏洞:"请求不存在的扩展名为idq或ida 文件,会暴露文件在服务器上的物理地址.").或者直接在相对路径上填".",一般是默认。这样攻击者就能任意修改,执行目标服务器上的文件,不管他对这个文件有无读写访问权。 
所以那些提供有ASP服务的个人主页或者其它服务的服务器,就要加倍小心这种攻击了。 

漏洞解决方法 

其实Activer server explorer就是利用了上面讲的漏洞 4 filesystemobject 组件篡改下载 fat 分区上的任何文件的漏洞。 
那么我们如何才能限制用户使用FileSystemObject对象呢?一种极端的做法是完全反注册掉提供FileSystemObject对象的那个组件,也就是Scrrun.dll。具体的方法如下: 

  在MS-DOS状态下面键入: 

Regsvr32 /u c:\windows\system\scrrun.dll 

(注意:在实际操作的时候要更改成为你本地的实际路径) 

  但是这样的话,就不能使用FileSystemObject对象了,有时利用FileSystemObject对象来管理文件是很方便,有什么办法能两全其美呢? 

我们可以做到禁止他人非法使用FileSystemObject对象,但是我们自己仍然可以使用这个对象. 
方法如下: 
查找注册表中 

   HKEY_CLASSES_ROOT\Scripting.FileSystemObject 键值 

  将其更改成为你想要的字符串(右键-->"重命名"),比如更改成为 

   HKEY_CLASSES_ROOT\Scripting.FileSystemObject2 

  这样,在ASP就必须这样引用这个对象了: 

   Set fso = CreateObject("Scripting.FileSystemObject2") 

  而不能使用: 

   Set fso = CreateObject("Scripting.FileSystemObject") 

  如果你使用通常的方法来调用FileSystemObject对象就会无法使用了。 

  只要你不告诉别人这个更改过的对象名称,其他人是无法使用FileSystemObject对象的。这样,作为站点管理者我们就杜绝了他人非法使用FileSystemObject对象,而我们自己仍然可以使用这个对象来方便的实现网站在线管理等等功能了! 


21 IIS4.0/IIS5.0超长文件名请求存在漏洞 

漏洞描述: 

受影响的版本: 

Microsoft IIS 5.0 
+ Microsoft Windows NT 2000 
Microsoft IIS 4.0 
+ Microsoft Windows NT 4.0 
+ Microsoft BackOffice 4.5 
- Microsoft Windows NT 4.0 
+ Microsoft BackOffice 4.0 
- Microsoft Windows NT 4.0 

当在一个已知的文件名后加230个"%20"再加个.htr,会使安装有Microsoft IIS 4.0/5.0泄漏该文件的内容。这是由ISM.dll映射的.htr文件引起的.比如: 

http://target/filename%20<重复230次>.htr 

这种请求只有当.htr请求是第一次调用或者ISM.dll第一次装载进内存,才能起作用。 

解决方法: 

安装补丁 

Microsoft IIS 5.0: 
http://download.microsoft.com/download/win2000platform/Patch/Q249599/NT5/EN-US/Q249599_W2K_SP1_X86_en.EXE 

Microsoft IIS 4.0: 
http://download.microsoft.com/download/iis40/Patch/Q260838/NT4ALPHA/EN-US/ismpst4i.exe 


22 ASP编辑器会自动备份asp文件,会被下载的漏洞 

漏洞描述: 

  在有些编辑asp程序的工具,当创建或者修改一个asp文件时,编辑器自动创建一个备份文件,比如:UltraEdit就会备份一个..bak文件,如你创建或者修改了some.asp,编辑器自动生成一个叫some.asp.bak文件,如果你没有删除这个bak文件,攻击有可以直接下载some.asp.bak文件,这样some.asp的源程序就会给下载。 


----
天茫云寂凄凉路,
人瀚情孤痛断魂。

[关闭][返回]






转载请注明:转载自 月光程序代码网 [ http://www.moon-soft.com ]