XSS 技术 - 和 JavaScript 包括

信息安全 Web应用程序 网页浏览器 xss javascript
2021-08-25 16:06:39

我正在查看OWASP XSS Filter Evasion Cheat Sheet,其中有一种技术对我来说是全新的:

& JavaScript 包括
<BR SIZE="&{alert('XSS')}">

我尝试了以下 HTML:

<html>
    <head>
        <title>test</title>
    </head>
    <body>
        <br size="&{alert('1')}">
    </body>
</html>

在 Firefox 31.0 上,它似乎不起作用(即没有警告框)。我错过了什么,还是这种技术只适用于旧版浏览器?

1个回答

JavaScript,权威指南,第 4 版-于 2001年出版- 更详细地提到了这些。相关部分似乎可以免费获得它就在该链接的底部。这是摘录:

12.2.5。非标准上下文中的 JavaScript

Netscape 和 Microsoft 都在他们的浏览器中实现了专有扩展,您可能偶尔会在此处描述的上下文之外的上下文中看到 JavaScript 代码。例如,Internet Explorer 允许您在使用特殊属性的<script>标记中定义事件处理程序。Netscape 4 允许您使用 JavaScript 作为在标记中定义 CSS 样式表的替代语法。Netscape 4 还扩展了 HTML 实体语法并允许 JavaScript 出现在实体中(但只能出现在 HTML 属性的值中)。这可能会导致 HTML 如下所示:forevent<style>

<table border="&{getBorderWidth( )};"> 

最后,Netscape 4 还支持一种基于这种 JavaScript 实体语法的条件注释形式。请注意,Netscape 6 和它所基于的 Mozilla 浏览器不再支持这些非标准的 JavaScript 使用。

所以这是对典型 HTML 实体语法的滥用——我们&amp;用来生成 & 符号的那种。我不写amp,而是写{alert('oh no')}

然而,该书提到Netscape 6 - 发布于 2000 年,大约是 IE6 的时代 - 和早期的 Mozilla 浏览器已经采取行动消除这个漏洞。它不太可能存在于最近的浏览器版本中。

如果它曾经影响过 Internet Explorer(甚至一开始都没有提到它允许这样做),我没有关于它在哪个版本不再是可行的 IE 漏洞利用的信息。