XXE 外部实体注入漏洞笔记_XML

什么是XXE漏洞

XXE 外部实体注入漏洞笔记_盲打_02


XXE(XML外部实体注入)漏洞是一种安全漏洞,存在于使用XML解析器的应用程序中。XXE漏洞允许攻击者利用对外部实体的引用来读取本地文件、执行远程代码或发起拒绝服务攻击。

XXE漏洞的原理是,当应用程序使用XML解析器解析用户提供的XML输入时,攻击者可以通过在XML中注入恶意的外部实体引用来触发漏洞。这些外部实体引用可以指向本地文件系统中的文件,通过读取文件内容来获取敏感信息。攻击者还可以通过远程引用,执行恶意的代码或发起网络请求。


XXE漏洞的危害性相当严重,因为它可以导致数据泄露、服务器被远程控制、拒绝服务等安全问题。为了防止XXE漏洞,开发人员应该采取一些安全措施,如禁用外部实体解析、使用白名单来限制可解析的实体、对用户输入进行严格的验证和过滤等。







任意文件读取

XXE 外部实体注入漏洞笔记_网络安全_03


内网端口探测

XXE 外部实体注入漏洞笔记_XXE_04


系统命令执行

XXE 外部实体注入漏洞笔记_网络安全_05



靶场测试XXE漏洞

第一步搭建靶场

XXE 外部实体注入漏洞笔记_网络安全_06



第二步输入任意字符,f12 查看content-type类型以及测试回显

XXE 外部实体注入漏洞笔记_网络安全_07


证明登录是由XML类型完成,接下来测试是否有XXE注入漏洞


第三步打开BP代理,抓取数据包之后去放入XXE的poc实体并应用





XXE 外部实体注入漏洞笔记_盲打_08


XXE 外部实体注入漏洞笔记_XXE_09



测试成功利用XXE漏洞来获取信息


进阶 XXE盲打

有时候我们数据注入进去没有回显,无法得到结果,这个时候就需要利用盲打来查看注入是否成功。

  1. DNSlog解析

XXE 外部实体注入漏洞笔记_XML_10


XXE 外部实体注入漏洞笔记_XXE_11


通过http协议来访问到此平台,注入进去就可以看到解析记录

XXE 外部实体注入漏洞笔记_网络安全_12


(2)


XXE 外部实体注入漏洞笔记_网络安全_13




XXE防御方法


  1. PHP JDK python在解析之前禁用外部实体引用

XXE 外部实体注入漏洞笔记_XML_14


XXE 外部实体注入漏洞笔记_盲打_15


XXE 外部实体注入漏洞笔记_XXE_16

2.

XXE 外部实体注入漏洞笔记_网络安全_17




3.使用WAF和规则来识别,过滤和屏蔽