通过内联样式识别哪些浏览器容易受到 XSS 攻击?

问题描述 投票:0回答:1

我们的公司安全策略有一项限制,防止向 ServiceNow 工作笔记添加注释以及包含嵌入式 HTML 的注释。原因是用户可以使用 JavaScript 注入恶意 HTML,但我不相信此策略仍然有效,因为自 2017 年推出此功能以来 ServiceNow 已添加了改进。我们希望启用它,所以我正在尝试验证该安全风险的程度。

ServiceNow 具有开箱即用的 HTML Sanitizer,它具有 HTML 元素的白名单和后备列表及其属性。

虽然以下不是完整列表,但这是我用于测试的示例代码:

Possible XSS attacks:

1. [code]<script>alert('XSS Attack!');</script>[/code]
2. [code]<img src="image.jpg" onerror="alert('XSS Attack!');" />[/code]
3. [code]<iframe src="https://www.google.com"></iframe>[/code]
4. [code]<a href="javascript:alert('XSS Attack!');">Link</a>[/code]
5. [code]<div style="background-image: url('javascript:alert(\'XSS Attack\')');"></div>[/code]
6. [code]<input type="text" value="XSS" onfocus="alert('XSS Attack');" />[/code]

正如预期的那样,从浏览器获得的 HTML 显示,HTMLSanitizer 要么进行了 HTML 编码,要么删除了允许代码注入的元素和属性:

<br>Possible XSS attacks:
<br>
<br>1. &lt;script&gt;alert('XSS Attack!');&lt;/script&gt;
<br>2. <img src="image.jpg">
<br>3. <iframe></iframe>
<br>4. Link
<br>5. <div style="background-image: url('javascript:alert(\'XSS Attack\')');"></div>
<br>6. <input type="text"></div>

唯一的例外是通过内联样式进行 CSS 攻击,其中 URL 可以指向 JavaScript 块:

<div style="background-image: url('javascript:alert(\'XSS Attack\')');" />

开发人员工具的 Network 选项卡显示已评估内联样式,但失败并显示 net::ERR_UNKNOWN_URL_SCHEME

net::ERR_UNKNOWN_URL_SCHEME

Chrome 129 似乎无法识别此上下文中的

javascript:
url 方案。

由于我不是网络开发人员,是否有一个很好的参考材料可以列出哪些浏览器支持此功能,因此容易受到攻击?

javascript html css security
1个回答
0
投票

我首先想到的是使用 BrowserStack 进行测试。

基本上,您只需创建一个虚拟 html 页面,其中包含要检查的 xss 注入,然后使用 browserstack 实时功能粘贴托管 URL 以查看结果。

© www.soinside.com 2019 - 2024. All rights reserved.