• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试之跨站脚本执行漏洞详解

发布: 2009-4-21 09:52 | 作者: 不详 | 来源: 测试时代采编 | 查看: 67次 | 进入软件测试论坛讨论

领测软件测试网

实验六:与其它漏洞结合,修改系统设置,查看系统文件,执行系统命令等
由于与浏览器相关的漏洞太多了,所以可与跨站脚本执行漏洞一起结合的漏洞也就显得不少。我想这些问题大家都应该很清楚吧,前些时间的修改IE标题漏洞,错误MIME类型执行命令漏洞,还有多种多样的蠕虫,都是很好的例子。
  更多的例子请参考下列链接: 

Internet Explorer Pop-Up OBJECT Tag Bug
http://archives.neohapsis.com/archives/bugtraq/2002-01/0167.html
Internet Explorer Javascript Modeless Popup Local Denial of Service Vulnerability
http://archives.neohapsis.com/archives/bugtraq/2002-01/0058.html
MSIE6 can read local files
http://www.xs4all.nl/~jkuperus/bug.htm
MSIE may download and run progams automatically
http://archives.neohapsis.com/archives/bugtraq/2001-12/0143.html
File extensions spoofable in MSIE download dialog
http://archives.neohapsis.com/archives/bugtraq/2001-11/0203.html
the other IE cookie stealing bug (MS01-055)
http://archives.neohapsis.com/archives/bugtraq/2001-11/0106.html
Microsoft Security Bulletin MS01-055
http://archives.neohapsis.com/archives/bugtraq/2001-11/0048.html
Serious security Flaw in Microsoft Internet Explorer - Zone Spoofing
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->自定义级别
工具->Internet选项->安全->Intranet->自定义级别
Opera:
文件->快速参数->允许使用Java
文件->快速参数->允许使用插件
文件->快速参数->允许使用JavaScript


  【常见问题】
  Q:跨站脚本执行漏洞在哪里存在?
  A:只要是CGI程序,只要允许用户输入,就可能存在跨站脚本执行漏洞。

  Q:跨站脚本执行漏洞是不是只能偷别人的Cookie?
  A:当然不是!HTML代码能做的,跨站脚本执行漏洞基本都能做。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

33/3<123

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网