0

我正在研究反映的 xss,但在理解以下场景中发生的事情时遇到了一些问题。我完成了一个实验室,在其中我能够通过代码利用 xss 反射漏洞:<svg><script>alert(1)这使我绕过了过滤起始和结束脚本标记的正则表达式(我知道有很多方法可以绕过它,但这不是重点) . 浏览器解析器自动添加结束脚本和 svg 标记,从而成功弹出警报。但是,我想尝试该行为是否与特定实验室有关或普遍有效。因此,我创建了一个 html 文件<svg><script>alert(1)写在里面。当我用 Chrome 打开它时,没有提示任何警报,所以我使用开发人员工具进行了调查,并且非常惊讶地发现脚本和 svg 标签(带有许多换行符)都被自动添加了,如图所示。我也尝试使用 IE 浏览器并具有相同的行为(没有换行符)。如您所见,这些标签被正确解释为 html 标签,并且没有被转义。在此处输入图像描述

我想更多地了解幕后发生的事情,但找不到任何东西。谁能解释为什么即使解析器自动完成标签正确我也没有看到警报弹出窗口?对主题的任何参考也值得赞赏。

4

1 回答 1

0

根据脚本元素的 HTML 规范

text/html 中的标记省略:
两个标记都不可省略。

修复标签汤的浏览器不会使脚本有效,除非它有效,否则它的内容不会被执行。

于 2021-02-07T05:06:57.583 回答