HTML 中 XXE 攻击的基本工作示例
Basic Working Example of an XXE Attack in HTML
我正在尝试 运行 在 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 本身并没有 "run",这意味着当警报弹出时,它只是将 xml 显示为纯文本。它不解释 DOCTYPE header 事物并从列出的文件中获取信息。
很难 google 解决这个问题,因为显然 XML 不会 "run",但需要在解释此文本而不只是写出来的地方发生一些事情。我不知道那东西是什么,也不知道如何让它在 HTML 页面内工作,如此处所写。
非常感谢任何提示。谢谢!
风险因素包括:
The application parses XML documents.
现在,脚本元素被定义(在 HTML 4 个术语中)包含 CDATA,因此其中的标记(</script>
除外)没有特殊含义。所以那里没有 XML 解析。
同时 alert()
处理字符串,而不是标记,所以仍然没有 XML 解析。
因为您没有 XML 解析器,所以没有漏洞。
一般来说,如果你想 XML 在网页中间进行解析,那么你需要使用 JavaScript(例如 DOM Parser,但如果它不了解 DTD,因此不容易受到攻击(即使它容易受到攻击,它也可能会阻止对本地外部实体的访问)。
我正在尝试 运行 在 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 本身并没有 "run",这意味着当警报弹出时,它只是将 xml 显示为纯文本。它不解释 DOCTYPE header 事物并从列出的文件中获取信息。
很难 google 解决这个问题,因为显然 XML 不会 "run",但需要在解释此文本而不只是写出来的地方发生一些事情。我不知道那东西是什么,也不知道如何让它在 HTML 页面内工作,如此处所写。
非常感谢任何提示。谢谢!
风险因素包括:
The application parses XML documents.
现在,脚本元素被定义(在 HTML 4 个术语中)包含 CDATA,因此其中的标记(</script>
除外)没有特殊含义。所以那里没有 XML 解析。
同时 alert()
处理字符串,而不是标记,所以仍然没有 XML 解析。
因为您没有 XML 解析器,所以没有漏洞。
一般来说,如果你想 XML 在网页中间进行解析,那么你需要使用 JavaScript(例如 DOM Parser,但如果它不了解 DTD,因此不容易受到攻击(即使它容易受到攻击,它也可能会阻止对本地外部实体的访问)。