我正在尝试在 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>
但是,它不起作用。script 标签内的 XML 本身并没有“运行”,这意味着当警报弹出时,它只是将 xml 显示为纯文本。它不解释 DOCTYPE 标头并从列出的文件中获取信息。
因为显然 XML 没有“运行”,所以很难用谷歌搜索,但是在解释这个文本而不是仅仅写出的地方需要发生一些事情。我不知道那是什么,也不知道如何让它在 HTML 页面中工作,如此处所写。
非常感谢任何提示。谢谢!