javascript - 如何在脚本标签内使用html编码的xss攻击向量触发xss?

标签 javascript html xss client-side-attacks

我正在阅读 OWASP XSS 预防备忘单,并陷入了理解的困境:

Why Can't I Just HTML Entity Encode Untrusted Data

HTML entity encoding is okay for untrusted data that you put in the body of the HTML document, such as inside a <div> tag. It even sort of works for untrusted data that goes into attributes, particularly if you're religious about using quotes around your attributes. But HTML entity encoding doesn't work if you're putting untrusted data inside a <script> tag anywhere, or an event handler attribute like onmouseover, or inside CSS, or in a URL. So even if you use an HTML entity encoding method everywhere, you are still most likely vulnerable to XSS. You MUST use the encode syntax for the part of the HTML document you're putting untrusted data into. That's what the rules below are all about.

我无法创建一个有效的 POC,html 编码的 xss 攻击向量如何在 <script> 内触发 xss标签

帮助我理解这一点。

最佳答案

HTML编码是指替换<&lt; , >&gt; ,和&&amp; (以及其他替代品)。该段落的意思是,这确实会阻止普通标签内的 XSS,例如,如果您尝试注入(inject) <script>alert(1)</script>进入p标签,你得到:

<p>&gt;script&lt;alert(1)&gt;/script&lt;</p>

它没有做任何事情。但是,如果 XSS 向量位于 script 标记而不是 p 标记内,则您只需输入 alert(1)最终结果是:

<script>alert(1)</script>

这会导致 XSS。

关于javascript - 如何在脚本标签内使用html编码的xss攻击向量触发xss?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63122679/

相关文章:

javascript - 页面刷新后RequireJS未捕获ReferenceError : $ is not defined

javascript - AngularJS:如何使用 token 安全性和自定义方法处理 RESTful API?

Javascript获取表中输入的值

jQuery 扩展列表项在 IE7 中显示略有不同

php - 我是否应该将 ENT_QUOTES 与 htmlspecialchars 一起使用

google-chrome - Chrome : ERR_BLOCKED_BY_XSS_AUDITOR details

javascript - div 中的表格是否忽略了最大宽度?

javascript - 试图嵌入一个选择元素

javascript - 如何知道网站或 html 页面的某些特定部分使用了什么 JavaScript 或 jquery?

javascript - 使用 img 标签加载不受信任的 SVG 时的 XSS