Xss漏洞检测

1. 实验目的:

通过检测网站是否存在Xss漏洞,了解Xss漏洞的原理及检测步骤,维护网站的安全。

2. 实验环境:

任意网络浏览器

3. 实验原理:

(1) XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。

(2) 实验步骤:确定XSS漏洞的基本方法是使用下面这个概念验证攻击字符串:"><script>alert(document.cookie</script> 

解释:这个字符串被提交给每个应用程序页面中的每一个参数;同时,攻击者监控它的响应,看其中是否出现这个相同的字符串。如果发现攻击字符串按原样出现在响应中,几乎可以肯定应用程序存在XSS漏洞。

但是这种基本的方法无法确认应用程序中存在可以利用的Xss漏洞。

还需要渗漏测试步骤。

(3) 渗透测试步骤:选择任意一个字符串,该字符串不曾出现在应用程序的任何地方,而且其中仅包含字母字符,因此不可能受到针对XSS过滤的影响。例如:mynameishack提交这个字符串,以其作为每个页面的每一个参数,且每次只针对一个参数。监控应用程序的响应,看其中是否出现这同一个字符串。记下参数值被复制到应用程序响应中的每一个参数。渗透测试必须对记下的每个潜在的漏洞进行手动分析,确定其是否确实可被利用。这时,渗透测试的目的是找到一种设计输入的方法,以便当它被复制到应用程序响应的相同位置时,任何JavaScript脚本都能够得以执行。

例如:

假设返回的页面中包含以下脚本:

<input type="text" name="address1" value="myxsstestdmqlwp"> 

很明显,利用XSS的一种方法是终止包含字符串的双引号,结束<input>标签,然后通过其他方法引入JavaScript脚本(使用<script><img src= ''javascript:...''>等)。例如:

"><script>alert(document.cookie)</script><!-- 

在这种情况下,另一种可以避开某些输入过滤的利用方法,是在<input>标签内注入一个包含JavaScript的事件处理器。例如:"οnfοcus="alert(document.cookie) 

4. 防范措施:

1 自我保护
  遗憾的是,网站还无法通过连接加密简单地防范XSS攻击。有SSL连接的网站,也就是在浏览一个加密网站时在工具栏上会出现一个小挂锁的网站,也只不过是对攻击进行了加密而已。一般来说,网站设计人员必须锁定他们的网站才能防止XSS攻击。
  不过用户也有两种方法可避免XSS攻击。其一是忽略一个网站到另一个网站的链接:比如说,如果A网站链接到somerandomsite.com/page,那么你 如果先要上这个网站,最好不要去直接点击该链接,而是通过搜索功能去查找该网站。这种方法可有效防止嵌入在链接网址中的XSS攻击,但是这种方法用起来不 太方便,而且当两个网站共享内容时就没办法用了。另外一种方法是在你的浏览器中禁用像JavaScript脚本语言。即便因此可能会让一些网站上的一些很不错的功能没法使用,只要你还能够容忍就行。
 (2) 禁止危险脚本
  IE8是第一款内置了XSS脚本拦截保护的浏览器。谷歌的Chrome也会紧随其后推出类似功能。这两款浏览器都会首先查看来自某个Web服务器的脚 本是否是恶意的——如果是,就拦截它。在今年4月的黑帽欧洲2010大会上,研究专家David Lindsay和Eduardo Vela Nava却演示了一种可以破除这种拦截的办法,不过谷歌已经修复了Chrome中的这个漏洞。微软则在今年1月(补丁MS10-002)和3月 (MS10-018)也已解决了大部分问题,并计划在6月修复第3个漏洞,所以在你读到这篇文章的时候,破除XSS脚本拦截的问题可能已经完全解决了。
  Firefox的用户则可以利用免费的NoScrpit附加组件有选择地拦截脚本。比如说,你可以放行一段Flash视频,而同时拦截该网站上的其他脚本组件。IE和Chrome在拦截可疑脚本方面没有这么细的粒度——它们是要么全拦截,要么全不拦截。
  NoScrpit也有一个问题,那就是大多数用户并不喜欢放行个别脚本的做法,因为这样会带来不便。不过拦截和放行今后可能会成为你的第二天性。你还 可以对某个特定网站上的所有脚本进行认证,无论是为了一次性访问还是今后的所有访问,这样的认证如今在IE 8和chrome中也可以做了,使得防范XSS攻击实现更加可能。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值