文章来源|MS08067 Web安全漏洞挖掘实战班课后作业

本文作者:某学员A(Web漏洞挖掘实战班2期学员)

一、漏洞概述

fastjson在解析json的过程中,支持使用@type字段来指定反序列化的类型,并调用该类的set/get方法来访问属性,当组件开启了autotype功能并且反序列化不可信数据时,攻击者可以构造数据,使目标应用的代码执行流程进入特定类的特定setter或者getter方法中,即可构造出一些恶意利用链。在Fastjson 1.2.47及以下版本中,利用其缓存机制可实现对未开启autotype功能的绕过。

二、影响版本

Fastjson1.2.24以及之前的所有版本

三、漏洞利用

创建TouchFile.java文件,内容如下:

630d954a5870b6635b6a241f022c4009.png

使用javac TouchFile.java编译为class文件

af3a41647855ca876b1d0cf4047d48fa.png

使用mvn打包marshalsec项目得到jar包mvn clean package -DskipTests(vps不好编译所以我在本机编译然后传到了vps)

af6f9a815b1a1e1b4239731440b12474.png

081e7b976593d01d186fee278f82288b.png

使用Python开启http服务 :python -m http.server 8000

6be41280435a462e432ecb93c602e71c.png

开启rmi

25313b8e755e59e034fc7b09a66b3072.png

访问漏洞页面,抓包,构造payload(抓到的包是GET,这里要改为POST,并将content-type修改为application/json)

bc8f0e4f2182fd9b83c76dc38f793bc1.png

d9653ceaaca01c7262d697dfae33a21e.png

反弹shell成功,获得flag

2cdf821675dfe7bcfe1e610699adecf5.png

c4b4fe8fecc2c91c774a25488de0cea8.png

1bd6188eaca6365190dc76d72b0e9132.png

8253862726d4db57a3e2d24b12756504.png

cefce9d17a2c2c9a56cb206b74bf2f81.png

总结:

  1. 使用payload攻击靶机(该payload需要指定rmi地址)

  2. 靶机引发反序列化漏洞,发送了进行rmi远程发放调用,去连接VPS

  3. VPS的rmi服务指定加载恶意java类,所以靶机通过VPS的rmi服务最终加载并执行恶意java类

  4. 靶机引发恶意系统命令执行

如果喜欢本文
欢迎 在看丨留言丨分享至朋友圈 三连

报名咨询请联系小客服

扫描下方二维码加入星球学习

加入后邀请你进入内部微信群,内部微信群永久有效!

69f80076d5bf0e42220a6676a0d215eb.png 3beeefef1b7248771cc5bd7fa93c97b0.png

1923dc4b3a83284c4b40552dc4364c24.png734d69636ce2f9db734b1a0a65687831.png

6e695516c8ef995405d9b2b71a69dadf.png 92037ca1137e77cfba6996bab680a671.png

来和5000+位同学一起加入星球学习吧!

de663c2d752d77f1b620cec2602e297d.gif

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐