Chrome XSS Auditor bypass思路:SQL注入嫁接

XSS Auditor是Chrome内置的一个XSS过滤器,会对URL中可能触发反射型XSS的内容进行屏蔽。拿DVWA来测试,如果在搜索表单里面加入'<script>alert(/xss/)</script>’结果就是这样:
screenshot-from-2016-10-29-235958
当然这个东西还能过滤更多更复杂的攻击参数,关闭这个功能需要在服务器端的响应头里面添加’X-XSS-Protection’或者’Content-Security-Policy’。关于XSS-Auditor 绕开的例子网上之前有很多,不过对于新版本的Chrome来说基本都失效了,不过最近忽然开脑洞想到了一个新的绕开思路。

OK,如何绕开:

前人的经验基本上都把各种变化想得差不多了,前两天无聊在玩SQLi-labs的时候忽然突发奇想,把反射XSS嫁接到SQL注入里面(这里并不是把XSS脚本通过SQL注入写到数据库里面形成持久XSS,只是利用其进行反射回显),拿SQLi-labs里面的第一个Less来做例子就是这样:

就只是利用union添加常量回显XSS脚本而已,这里用的数据库是MySQL。当然直接这样写是会被XSS Auditor拦截的,但是当把写法换一下效果就出来了:

XXS Auditor这回安静了:
screenshot-from-2016-10-30-001850
简而言之就是Chrome的开发者并没有考虑这种嫁接到SQL注入里面的反射型XSS,实际上这种URL被编码之后辨识度更低,但是利用前提是必须有一个非盲态的SQL注入可以同时被利用,利用的空间会更小一些。当然各个DBMS的SQL语言还都支持16进制的ASCII码:

这个只是细节上的不一样而已。

这个例子可能并没有太多的利用价值,因为能够被利用的条件实在是有点苛刻,但是没准是一种新思路呢~

Leave a Reply

Your email address will not be published. Required fields are marked *