分类：电脑/网络-软件
问题：asp程序可任意查看操作服务器端文件的问题我们知道，通过在客户端 
我们知道，通过在客户端运行上传到的一段asp程序可以把服务器上的所有文件和文件夹列出来并可进行任意操作，这一漏洞怎样才能避免？那么多asp空间提供商他们是怎样解决这个问题的呢？
回答：一、ASP程序密码验证漏洞  　　漏洞描述：  　　很多网站把密码放到中，在登陆验证中用以下sql,(以asp为例）  sql="select * from user where username='"&username&"'and pass='"& pass &'"  　　此时，您只要根据sql构造一个特殊的用户名和密码，如：ben' or '1'='1  就可以进入本来你没有特权的页面。再来看看上面那个语句吧：  sql="select * from user where username='"&username&"'and pass='"& pass&'"  　　此时，您只要根据sql构造一个特殊的用户名和密码，如：ben' or '1'='1  这样,程序将会变成这样: sql="select*from username where username="&ben'or'1'=1&"and pass="&pass&"  or 是一个逻辑运算符,作用是在判断两个条件的时候,只要其中一个条件成立,那么等式将会成立.而在语言中,是以1来代表真的(成  立).那么在这行语句中,原语句的"and"验证将不再继续,而因为"1=1"和"or"令语句返回为真值.。  　　另外我们也可以构造以下的用户名：  username='aa' or username<>'aa'  pass='aa' or pass<>'aa'  　　相应的在浏览器端的用户名框内写入：aa' or username<>'aa 口令框内写入：aa' or pass<>'aa,注意这两个字符串两头是  没有'的。这样就可以成功的骗过系统而进入。  　　后一种方法理论虽然如此，但要实践是非常困难的，下面两个条件都必须具备。  　　1. 你首先要能够准确的知道系统在表中是用哪两个字段存储用户名和口令的，只有这样你才能准确的构造出这个进攻性的字符  串。实际上这是很难猜中的。  　　2.系统对你输入的字符串不进行有效性检查。  　　问题解决和建议：  　　对输入的内容验证和"'"号的处理。  7、IIS4或者IIS5中安装有INDEX SERVER服务会漏洞ASP源程序  　　问题描述：  　　在运行IIS4或者IIS5的Index Server，输入特殊的字符格式可以看到ASP源程序或者其它页面的程序。甚至以及添打了最近关  于参看源代码的补丁程序的系统，或者没有.htw文件的系统，一样存在该问题。获得asp程序，甚至 a文件的源代码，无  疑对系统是一个非常重大的安全隐患。往往这些代码中包含了用户密码和ID，以及数据库的源路径和名称等等。这对于攻击者收集  系统信息，进行下一步的入侵都是非常重要的。  通过构建下面的特殊程序可以参看该程序源代码：     　　这样只是返回一些html格式的文件代码，但是当你添加%20到CiWebHitsFile的参数后面，如下:   ?CiWebHitsFile=/p%20&CiRestriction=none&CiHiliteType=Full　　这将获得该程序的源代码。  　　（注意：/ p是以web的根开始计算。如某站点的http:///welcome/ p  那么对应就是：   ?CiWebHitsFile=/welcome/p%20&CiRestriction=none&CiHiliteType=Full)  　　由于' w'文件并非真正的系统映射文件，所以只是一个储存在系统内存中的虚拟文件。哪怕你已经从你的系统中删除了  所有的真实的.htw文件，但是由于对 w文件的请求默认是由webhits.dll来处理。所以，IIS仍然收到该漏洞的威胁。  　　问题解决或者建议：  　　如果该webhits提供的功能是系统必须的，请下载相应的补丁程序。如果没必要，请用IIS的MMC管理工具简单移除.htw的映象  文件。  补丁程序如下：  Index Server 2.0:  Intel:     Alpha:     Indexing Services for Windows 2000:  Intel:     二、漏洞描述：　　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。具体的方法如下： 　　在ＭＳ－ＤＯＳ状态下面键入： 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对象，而我们自己仍然可以使用这个对象来方便的实现网站在线管理等等功能了！