当前位置: 首页 > 图文教程 > 网络编程 > ASP > [漏洞]利用Activer server explorer可对文件进行读写访问

ASP
ASP字符串大写转换成小写 ASP小写转换成大写 ucase lcase
asp base64加解密函数代码
Discuz!NT 论坛整合ASP程序论坛
discuz 2.0整合asp系统,用户添加函数
P3P 和 跨域 (cross-domain) cookie 访问(读取和设置)
通过asp程序来创建access数据库
检查access数据库中是否存在某个名字的表的asp代码
asp #include file 与 #include virtual 的区别小结
一个带采集远程文章内容,保存图片,生成文件等完整的采集功能
asp 横排显示数据
asp base64 utf-8为了兼容asp.net的base64
两个非常规ASP木马(可躲过扫描)
asp DateDiff实现文字在特定时间后消失
ASP所有的Session变量获取实现代码
关于ASP eof与bof 区别分析
asp ajax注册验证之 防止用户名输入空格
asp sqlserver 执行存储过程返回记录集报对象关闭时不允许操作
ASP 获取文件扩展名函数getFileExt()
asp 简单分页代码
asp删除mssql数据库中没有记录的图片代码

ASP 中的 [漏洞]利用Activer server explorer可对文件进行读写访问


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 63 ::
收藏到网摘: n/a

       漏洞描述:
    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对象,而我们自己仍然可以使用这个对象来方便的实现网站在线管理等等功能了!