本文主要是介绍[阿一网络安全] fastjson 代码执行(CNVD-2019-22238),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
漏洞原理:
漏洞利⽤FastJson autotype处理Json对象的时候,未对@type字段进⾏完整的安全性验证,攻击者可以传⼊危险类,并调⽤危险类连接远程RMI主机,通过其中的恶意类执⾏代码。攻击者通过
这种⽅式可以实现远程代码执⾏漏洞,获取服务器敏感信息,甚⾄可以利⽤此漏洞进⼀步的对服务器数据进⾏操作。
攻击流程:
制作反弹Payload -> 开启HTTP服务 -> 启动LDAP服务 -> 监听EXP中端⼝ -> 执⾏Payload
开启靶场,靶场成功运行
环境准备,Java 版本 1.8 和 maven
打开阿⾥云 vps,查看 Java 版本
在 kali 中安装 maven
下载 marshalsec ⼯具
下载地址: GitHub - mbechler/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
这篇关于[阿一网络安全] fastjson 代码执行(CNVD-2019-22238)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!