对绕过谷歌XSS Auditor的一些想法(针对标签之间)

0x00 XSS Auditor是啥

这是一个被加入在了chrome内核中的安全功能,之所以加入内核是为了其它调用chrome内核的浏览器也具备这个功能,目的是为了抵御XSS,功能很强大,对反射型XSS而言,感觉一大半的payload都被过滤掉了,DOM的话效果弱很多,而存储型根本没用。与之类似的IE中也有自己的XSS Filter。

0x01 XSS Auditor怎么过滤

(我写这篇博客用的chrome是最新的56)

我们看看它是怎么描述的:

这里写图片描述

大概意思是本页中的源码被发现同样存在于请求当中,所以拒绝执行。注意,是“存在于请求中”,所以不光是GET,POST请求也无法幸免。
这是个什么概念呢,难道所有的字符串都不行吗?想想也知道肯定不会。其实在这里它还是用了黑名单的思想,针对危险的标签和危险的属性做重点检查,而且规则非常严格,典型的一刀砍,它不管你是否真的有危险代码和函数,只要有可以执行脚本的可能,就会过滤拦截

我们可以做下实验(我懒得自己搭环境了,用最近挺火的帝都某小学搜索页面做例子),首先测试“

hello xss

”,这肯定不会拦截的:

对绕过谷歌XSS Auditor的一些想法(针对标签之间)_第1张图片

因为XSS Auditor认为这个标签是安全的,同时其中也没有危险属性,那我们这样加个“危险属性”试试呢,

hello xss

这里写图片描述
这里写图片描述

这都行??在这里过滤器不去管语法上p标签是否存在onerror事件,更不管事件中的代码是否可以真的执行,直接一刀切,全部净化掉。

所以像什么,, 想都不用想,全部会被净化掉,更别说用什么

你可能感兴趣的:(浏览器)