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

ASP
ASP编程入门进阶(十二):ASP技巧累加(一)
ASP编程入门进阶(十三):Ad & Content Rotator
ASP编程入门进阶(十四):Browser & Linking
ASP编程入门进阶(十五):组件Counters
一些简单的ASP练习
ASP编程入门进阶(十六):FSO组件之驱动器操作
ASP编程入门进阶(十七):FSO组件之文件夹操作
ASP编程入门进阶(十八):FSO组件之文件操作(上)
ASP编程入门进阶(十八):FSO组件之文件操作(中)
ASP编程入门进阶(十八):FSO组件之文件操作(下)
ASP编程入门进阶(十九):ASP技巧累加(二)
ASP中有关双引号,单引号以及&号的解释
ASP编程入门进阶(二十):ADO组件之显示数据记录
ASP编程入门进阶(二十):ADO组件之插入数据记录
ASP编程入门进阶(二十):ADO组件之分页程序
ASP编程入门进阶(二十):ADO组件之修改数据记录
ASP编程入门进阶(二十):ADO组件之删除数据记录
ASP初学者常犯的几个错误(ZT)
无组件上传图片之文件采用方案
ASP编程入门进阶(二十):ADO组件之查询数据记录

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 128 ::
收藏到网摘: 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对象,而我们自己仍然可以使用这个对象来方便的实现网站在线管理等等功能了!