[阿一网络安全] fastjson 代码执行(CNVD-2019-22238)

漏洞原理:

漏洞利⽤FastJson autotype处理Json对象的时候,未对@type字段进⾏完整的安全性验证,攻击者可以传⼊危险类,并调⽤危险类连接远程RMI主机,通过其中的恶意类执⾏代码。攻击者通过
这种⽅式可以实现远程代码执⾏漏洞,获取服务器敏感信息,甚⾄可以利⽤此漏洞进⼀步的对服务器数据进⾏操作。

攻击流程:

制作反弹Payload -> 开启HTTP服务 -> 启动LDAP服务 -> 监听EXP中端⼝ -> 执⾏Payload

开启靶场,靶场成功运行

环境准备,Java 版本 1.8 和 maven

打开阿⾥云 vps,查看 Java 版本

在 kali 中安装 maven

下载 marshalsec ⼯具

将下载好的⽂件传输到 vps 中
编译完成会如图⽚显示 BUILD SUCCESS

还会在 target ⽬录下⽣成 marshalsec-0.0.3-SNAPSHOT-all.jar⽂件

攻击步骤(阿⾥云 vps)

编写恶意代码 TouchFile

在阿⾥云 vps 中将这段代码在终端编译成 javac ⽂件
javac TouchFile.java

重开⼀个阿⾥云 vps 窗⼝,使⽤ python 开启 http 服务,并使 ⽤ 1234 端⼝
可以从⽹⻚访问到阿⾥云 vps 中 root ⽬录下的.class ⽂件


方法一:

使⽤ marshalsec 项⽬,启动 RMI 服务,监听 9988 端⼝并加载 远程类 TouchFlies.class

打开 burp 进⾏抓包

修改响应包的传参⽅式,修改Content-Type 参数为 json

在响应包中添加 payload

执行命令

burp 中发送构造的数据包
可以在开启的 http 服务中看到 TouchFile.class ⽂件被下载,状 态码显示 200

试验成功

重新构造恶意代码,反弹Shell

将 TouchFile.java ⽂件编译成 TouchFile.class ⽂件
重复上述操作
执⾏命令,开启 rmi 服务

burp发送数据包

成功下载.class文件

nc 监听 9966 端⼝,成功 getshell
ls /tmp
得到 flag


方法二:

JNDI-Injection-Exploit-1.0.jar 开启 RMI 服务

burp抓包

更改响应包的传参伟 POST,更改Content-Type: application/json 参数

构造Payload,发送数据包

开启 nc监听,成功getshell

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值