HTML 中 XXE 攻击的基本工作示例



>我正在尝试在 html 页面中使用 XXE 攻击运行一些测试,但我无法想出一个工作示例。在网上看了很久后,我想出了这个:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script id="embeddedXML" type="text/xml">
<!DOCTYPE foo [
<!ELEMENT foo ANY>
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<foo>&xxe;</foo>
</script>
</head>
<body>
<script type="application/javascript">
alert(document.getElementById('embeddedXML').innerHTML);
</script>
</body>
</html>

但是,它不起作用。脚本标记中的 XML 本身不会"运行",这意味着当警报弹出时,它只是将 xml 显示为纯文本。它不会解释 DOCTYPE 标头的东西并从列出的文件中获取信息。

很难用谷歌搜索一下,因为显然XML不会"运行",但是需要发生一些事情来解释这些文本,而不仅仅是写出来。我不知道那是什么东西,或者如何让它在这里写的 HTML 页面中工作。

任何提示非常感谢。谢谢!

参见 OWASP

风险因素包括:

应用程序分析 XML 文档。

现在,脚本元素被定义为(在HTML 4术语中(包含CDATA,因此其中的标记(</script>除外(没有特殊含义。所以那里没有 XML 解析。

同时,alert()处理字符串,而不是标记,因此仍然没有进行XML解析。

由于您没有 XML 解析器,因此不存在漏洞。

一般来说,如果你想在网页中间进行XML解析,那么你需要使用JavaScript(例如,使用DOM解析器,但如果它不是DTD感知的,所以我不会感到惊讶,所以不容易受到攻击(即使它很脆弱,那么它很可能会阻止对本地外部实体的访问(。

最新更新