跨站脚本执行漏洞详解与防护(4)


http://archives.neohapsis.com/archives/bugtraq/2001-10/0075.html 
Incorrect MIME Header Can Cause IE to Execute E-mail Attachment 
http://www.kriptopolis.com/cua/eml.html 

跨站脚本执行漏洞在这里的角色就是隐藏真正攻击者的身份。 

实验七:其它 
其实这类问题和跨站脚本执行漏洞没有多大关系,但是在这里提一下还是很有必要的。问题的实质还 是CGI程序没有过滤用户提交的数据,然后进行了输出处理。举个例子来说,支持SSI的服务器上的CGI程 序输出了用户提交的数据,无论该数据是采取何种方式输入,都可能导致SSI指令的执行。当然,这是在服 务端,而不是客户端执行。其实像ASP,PHP和Perl等CGI语言都可能导致这种问题。 

【隐藏技巧】 
出于时间的考虑,我在这里将主要讲一下理论了,相信不是很难懂,如果实在有问题,那么去找本书 看吧。 
1. URL编码 
比较一下: 
http://www.5460.net/txl/login/login.pl?username=<h1>&passwd=&ok.x=28&ok.y=6 
http://www.5460.net/txl/login/login.pl?username=%3C%68%31%3E&passwd=&ok.x=28&ok.y=6 
你觉得哪个更有隐蔽性?! 

2. 隐藏在其它对象之下 
与直接给别人一个链接相比,你是否决定把该链接隐藏在按钮以下更好些呢? 

3. 嵌入页面中 
让别人访问一个地址(注意这里的地址不同于上面提到的URL),是不是又要比让别人按一个按钮容易得 多,借助于Iframe,你可以把这种攻击变得更隐蔽。 

4. 合理利用事件 
合理使用事件,在某些情况上可以绕过CGI程序对输入的限制,比如说前些日子的SecurityFocus的跨站脚本 执行漏洞。 

【注意事项】 
一般情况下直接进行类似<script>alert(document.cookie)</script>之类的攻击没有什么问题,但是有时 CGI程序对用户的输入进行了一些处理,比如说包含在''或””之内,这时我们就需要使用一些小技巧 来绕过这些限制。 
如果你对HTML语言比较熟悉的话,绕过这些限制应该不成问题。 

【解决方法】 
要避免受到跨站脚本执行漏洞的攻击,需要程序员和用户两方面共同努力: 
程序员: 
1. 过滤或转换用户提交数据中的HTML代码 
2. 限制用户提交数据的长度 

用户: 
1. 不要轻易访问别人给你的链接 
2. 禁止浏览器运行JavaScript和ActiveX代码 

附:常见浏览器修改设置的位置为: 
Internet Explorer: 
工具->Internet选项->安全->Internet->自定义级别 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3490.html