在“给你的FileSystemObject对象加把锁”一文中,提到更改HKEY_CLASSES_ROOT\Scripting.FileSystemObject的名称以达到给该对象加锁的方法,实为掩耳盗铃之举,不少网站都转载过此文,如果真有网管这样做,后果不堪设想。
解这把锁的方法如下:
<OBJECT RUNAT=server CLASSID="clsid:0D43FE01-F093-11CF-8940-00A0C9054228" id=objFS> </OBJECT>
<%
' 现在可以使用objFS了
%>
真是逃得了和尚逃不了庙!
其实 FileSystemObject 对象确实非常之危险。即使是NTFS加上严格的权限设置,再进行一般过滤,都很难堵住漏洞。前两天我在国外一个非常著名的支持ASP的免费站点上(该服务器对FileSystemObject对象的参数加了过滤)使用该对象,再采用一些非常规方法,竟然可以看到该服务器上系统目录下的很多重要文件,例如系统配置文件和Web访问记录等。后来我给该网站发了封邮件,述说了该漏洞,但不幸的是到现在还没收到回复。
对于 FileSystemObject,我想比较好的一个办法是卸载scrrun组件(当然IIS的Web管理功能也不再可用),再通过开发仿FileSystemObject对象提供服务,进行FileSystemObject对象的仿真操作,过滤和监控。
当然,别忘了,ASP的功能实在是很强大,象Script.Shell等很多组件都有很大的危险性。所以对提供ASP服务的网站,也会面临着很大的挑战,毕竟Microsoft在开发时考虑的主要对象不是这些客户,也可以理解为什么很多站点对申请者都进行严格的资格审查。