一种新型的绕过XSS防御的方法介绍

所属分类: 网络安全 / 黑客教程 阅读数: 241
收藏 0 赞 0 分享
大家都知道,普遍的防御XSS攻击的方法是在后台对以下字符进行转义:<、>、’、”,但是经过本人的研究发现,在一些特殊场景下,即使对以上字符进行了转义,还是可以执行XSS攻击的。
首先看一个JS的例子:
<script>
    var s = "\u003c\u003e";
    alert(s);
</script>运行这段代码,结果显示如下:
看到这么熟悉的尖括号,大家会不会有一些兴奋的感觉呢?JS代码中并没有出现尖括号,可是运行时却输出了尖括号!!!这意味着:可以通过\u003c和\u003e来代替<和>。可是该如何利用这个特性来构造XSS攻击呢?继续看一个例子:
<div id='s'>
test
</div>
<script>
    var s = "\u003cimg src=1 onerror=alert(/xss/)\u003e";
    document.getElementById('s').innerHTML = s;
</script>运行上面代码,结果显示如下:
在没有尖括号的情况下,成功实现了一个弹框的案例。
现在来设想一个更贴近实际开发情况的例子:
(1)假设某站的首页:http://www.xxxx.com /main.html,其代码为:
<div id="test">
   aa
</div>
<script>
   function callback(obj)
   {
       document.getElementById("test").innerHTML = obj.name;
   }
</script>
<script src=" http://www.victim.com/getcontent"></script>(2)http://www.victim.com/getcontent返回的内容格式如下:
callback({"name":"xx"}); 其中name的值是用户的昵称。 
这个例子简单模拟了异步拉取信息并进行显示的情况。
现在假设用户的昵称为:
\u003cimg src=1 onerror=alert(/xss/)\u003e 那么会是什么情况呢?
首先getcontent返回的昵称应该是这样的:
\\u003cimg src=1 onerror=alert(/xss/)\\u003e因为后台输出JSON格式数据时,一般都会在\前面添加转义符进行转义。
接着main.html的callback函数应该是等价于执行下面的语句:
document.getElementById("test").innerHTML =" \\u003cimg src=1 onerror=alert(/xss/)\\u003e";显示的结果如下: 
很遗憾,没有弹出框。原因是原来的转义序列\u003c并没有生效,被添加的转义符转义掉了。
不过这里假设返回昵称时对\进行了转义,但实际情况下,有时输出json格式数据时是没有对\进行转义的,那样就会触发漏洞。
对于有对\进行转义的,这时就轮到我们强大的半字符出场了。对于半字符的问题,这里并不打算详细讲,说下结论:
对于gb2312编码," [0xc0]\ "是一个合法的编码,显示为:"繺"。
对于UTF-8编码,在IE6下,上述组合也是一个合法的编码。
其中[0xc0]表示一个十六进制的值。
现在修改昵称为:
[0xc0]\u003cimg src=1 onerror=alert(/xss/) [0xc0]\u003e,getcontent输出:
callback({"name":"[0xc0]\\u003cimg src=1 onerror=alert(/xss/) [0xc0]\\u003e"});由于半字符[0xc0]的存在,在解释上述JS代码时,等价于:
callback({"name":"繺\u003cimg src=1 onerror=alert(/xss/) 繺\u003e"});可见,转义序列\u003c终于又回来了,显示结果如下:
上述昵称中并没有出现单双引号,尖括号,所以如果后台只是对单双引号和尖括号进行转义,那么是可以被绕过防御的。
总结:
(1)利用场景:输出内容在JS代码里,并且被动态显示出来(如使用innerHTML)。
(2)测试方法:截获请求包,修改参数为:
%c0\u003cimg+src%3d1+onerror%3dalert(/xss/)+%c0\u003e(3)防御方法:后台对半字符,反斜杠,单双引号,尖括号进行处理。
一切皆有可能,跨站无处不在,发挥偶们强大的智慧来挖掘吧
更多精彩内容其他人还在看

为何黑客要挟制路由器DNS 用户该怎样实时发觉和防备方法

起首说说挟制路由器是什么意思,路由器挟制平日指的是,开启了无线网络功效的无线路由器,攻击者经由过程破解无线暗码衔接上无线网后,再登录路由治理界面来节制全部无线网,被挟制以后能够随意率性改动后盾设置。下面我们一起看看怎么防备黑客入侵
收藏 0 赞 0 分享

大势至共享文件监控软件、共享文件权限管理软件主控端与客户端的连接设置方法详解

这篇文章主要介绍了大势至共享文件监控软件、共享文件权限管理软件主控端与客户端的连接设置方法详解,,小编觉得还是挺不错的,具有一定借鉴价值,下面就来和小编一起看看吧
收藏 0 赞 0 分享

server2008共享设置、服务器共享文件设置、服务器设置共享文件夹的方法详细介绍

这篇文章主要介绍了server2008共享设置、服务器共享文件设置、服务器设置共享文件夹的方法详细介绍,保护服务器共享文件设置访问权限,让每个部门只访问自己的共享文件等,下面随小编一起来看看吧
收藏 0 赞 0 分享

大势至网络终端准入控制系统、局域网网络准入控制方案最新版使用说明!

这篇文章主要介绍了大势至网络终端准入控制系统、局域网网络准入控制方案最新版使用说明,小编觉得还是挺不错的,这里分享给大家,需要的朋友可以看下。
收藏 0 赞 0 分享

大势至局域网接入认证软件、禁止电脑接入局域网软件V9.0正式发布

这篇文章主要介绍了大势至局域网接入认证软件、禁止电脑接入局域网软件V9.0正式发布,小编觉得还是挺不错的,这里分享给大家,需要的朋友可以看下。
收藏 0 赞 0 分享

大势至电脑文件安全管理软件、计算机文件防泄密软件V12版本发布

这篇文章主要介绍了大势至电脑文件安全管理软件、计算机文件防泄密软件V12版本发布,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

大势至共享文件权限管理软件、公司内部文件共享、企业共享文件解决方案

这篇文章主要介绍了大势至共享文件权限管理软件、公司内部文件共享、企业共享文件解决方案的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

反垃圾邮件技术之密径追踪(图)

中国的网民数量已突破1 亿,每年电子邮件发送量达500 亿封,但是这样的数据却并不能令我们惊喜,因为在这500 亿封电子邮件中,有将近60%也就是有300 亿封是垃圾邮件。垃圾邮件已经成为一个综合性的社会问题,要想从根本上杜绝垃圾邮件的泛滥,必须采取全民总动员的方式
收藏 0 赞 0 分享

详细介绍如何捕获网络数据包

前 言 经常看到论坛有人问起关于数据包的截获、分析等问题,幸好本人也对此略有所知,也写过很多的sniffer,所以就想写一系列的文章来详细深入的探讨关于数据包的知识。 我希望通过这一系列的文章,能使得关于数据包的知识得以普及,所以这系列的每一篇文
收藏 0 赞 0 分享

黑客的脚本漏洞工具分析(图)

上图只是对一个网站注入点的工具检测,当然看到了结果扫出来的密码为16位的md5加密码,但我们可以通过md5密码破解工具进行破解的。然后找到后台用所得的用户名和密码进行登录即可。对于黑客软件,其实并不是我们想象的那么复杂,只是根据掌握的漏洞信息提交相应该的
收藏 0 赞 0 分享
查看更多