fastjson xml转json_原创 | 在XML中测试Fastjson反序列化

1ebb1bc9c8d5c400f5be114ae4582d30.gif点击上方蓝字 关注我吧 6523cda4aee295e29973d1349130bb98.gif 引言 6523cda4aee295e29973d1349130bb98.gif 在实际业务开发中,经常会对xml或者json类型的请求数据进行解析。例如微信扫码支付的功能,按照微信开发文档与支付平台进行数据交互就需要使用XML格式的数据。针对XML传输的数据,最容易想到的就是XXE攻击了。通过XXE的利用,可以达到以下的目的:
  • 敏感信息泄漏(使用file协议读取敏感文件、列目录)
  • 递归调用造成拒绝服务攻击
  • SSRF
  • 在php开启expect拓展的前提下可能会导致远程代码执行
  • ……

在一定条件下是可以达到RCE的效果的,但是远不及任意文件上传和反序列化等漏洞那么粗暴。以下是记一次内部安全测试中的相关过程。 6523cda4aee295e29973d1349130bb98.gif

在XML中测试Fastjson反序列化

6523cda4aee295e29973d1349130bb98.gif
目标主要的交互方式是以 Content-Type:application/xml;charset=UTF-8 的方式进行请求的,主要以xml的方式进行数据传输。最先想到的就是通过引入外部实体的方式进行XXE的检测。但是比较可惜禁用了。

bf83a13322a8ae20b67dbfeecb71543e.png

另寻出路,看看有没有类似上传的功能点,比较幸运的是在文件操作功能处找到了任意文件下载的缺陷,这里尝试下载相关代码进行审计,看看有没有别的突破口。下载源码的过程可以参考https://sec-in.com/article/537。
系统是通过jar启动部署的,基于springboot进行开发。拿到代码后习惯性的看了一下导入的组件,引入的fastjson版本为1.2.24,还是那个熟悉的配方:
<dependency>  <groupId>com.alibabagroupId>  <artifactId>fastjsonartifactId>  <version>1.2.24version>dependency>


在Spring中@RequestBody主要用来接收前端传递给后端的json字符串中的数据的,既然使用了fastjson依赖,那么猜

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值