ASP漏洞分析和解决方法(9)

来源:岁月联盟 编辑:zhu 时间:2003-04-14
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对象,而我们自己仍然可以使用这个对象来方便的实现网站在线管理等等功能了!