Chrome 18 Anti-XSS Bypass

QQ空间 新浪微博 微信 QQ facebook twitter
漏洞ID 1047415 漏洞类型
发布时间 2012-06-02 更新时间 2012-06-02
CVE编号 N/A CNNVD-ID N/A
漏洞平台 N/A CVSS评分 N/A
|漏洞来源
https://cxsecurity.com/issue/WLB-2012060009
|漏洞详情
漏洞细节尚未披露
|漏洞EXP
# Exploit Title: Chrome 18 anti-XSS bypass
# Date: 2012-05-31
# Author: k3170makan
# Vendor or Software Link: [download link if available]
# Version: 18.0.1025.162
# Category:: local
# Google dork: N/A
# Tested on: Ubuntu 10.04
# Demo site: N/A

Chrome 18---and possibly 19--- versions anti-XSS filter or XSSAuditor as
its called does not pick up certain XSS vectors.
Its possible to by pass the XSSAuditor by fooling it into believing that
the javascript you inject is commented out.
To do this you need to use both in line and multiline comment tags after
one another in the injection:

Code Snippet:

else if (startsMultiLineCommentAt(string, startPosition)) {
            if ((foundPosition = string.find("*/", startPosition)) != notFound)
                startPosition = foundPosition + 2; /*<--- skips 2 chars here*/


Because the Auditor skips two chars you can fool it by add another
slash to an inline incomment that succeeds a multiline comment e.g
'/*//'+'/'

So you need to make sure that in your injection---before any actual
javascript syntax---you include "/*///" and make sure to close the comment
as well
Some examples would be:

<script>/*///*/alert(1);</script> #it will pick up the multiline comment
here and skip to the next 2 chars, which will again be comments, so the
check will pass leaving the javascript alone!
<script>/*///////*/alert(1);</script>
you can add whatever chars you want to the vector after the '/*///' part as
long as you close the comment obviously.

Chrome Issue track --->
http://code.google.com/p/chromium/issues/detail?id=130594



gr33ts Telspace Systems ;)

site:k3170makan.blogspot.com