XXE攻击与远程代码执行漏洞解析
1. XXE攻击原理
XXE(XML外部实体注入)攻击是攻击者利用目标应用程序,使其在XML解析过程中包含外部实体。简单来说,应用程序接收XML数据但未对其进行有效验证,只是解析所收到的任何内容。
例如,假设一个招聘网站允许通过XML注册和上传职位信息。网站可能会提供DTD(文档类型定义)文件,并期望用户提交符合要求的文件。攻击者可以将 !ENTITY 指向 /etc/passwd 文件,而非原本的 website.txt 。当XML被解析时,服务器的 /etc/passwd 文件内容就会被包含在响应中。
以下是一个示例代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >
]
>
<foo>&xxe;</foo>
解析器会识别内部DTD,定义 foo 文档类型。DTD告知解析器 foo 可以包含任何可解析的数据, xxe 实体在文档解析时会读取 /etc/passwd 文件,解析器会将 &
超级会员免费看
订阅专栏 解锁全文
586

被折叠的 条评论
为什么被折叠?



