| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Fastjson 1.2.24反序列化漏洞复现 -> 正文阅读 |
|
[Java知识库]Fastjson 1.2.24反序列化漏洞复现 |
目录 一. 前期准备:? ? ? ? 1. 安装jdk,并配置环境:Kali安装JDK 1.8的详细过程_m0_54899775的博客-CSDN博客 ? ? ? ? 2.安装maven,并配置环境:kali linux安装maven_m0_54899775的博客-CSDN博客 ? ? ? ? 3.安装vulhub靶场环境:Kali Linux 2020安装vulhub_m0_54899775的博客-CSDN博客 ? ? ? ? 4.安装反序列化工具marshalsec:下载和安装marshalsec_m0_54899775的博客-CSDN博客 二. fastjson简介????????Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象。使用比较广泛。 三. 漏洞复现(一):创建文件? ? ? ? 1.启动靶场:
先启动vulhub的fastjson 1.2.24漏洞环境 Docker开启的8090端口 假设我们目标IP为192.168.6.134(虚拟机ip),此时我们访问192.168.6.134:8090 ????????2.在vulhub下的fastjson 1.2.24文件夹下保存以下代码为TouchFile.java文件(文件名可随便起):
? ? ? ? 3.编译.java文件,生成.class文件:
? ? ? ? 4.把编译好的class文件传到外网系统中(这里我传到kali服务器中),并在class文件所在的目录,Python起一个http服务。
然后查看此网址,会发现新建的文件: ? ? ? ? 5.使用marshalsec项目,启动RMI服务,监听9999端口并加载远程类TouchFile.class:
出现以下画面表示编译成功: 成功以后会在target目录下生成marshalsec-0.0.3-SNAPSHOT-all.jar文件 ? ? ? ? 6.接下来开启RMI服务
?其中ip地址为上面开通http服务的网址(我这里为虚拟机的ip:4444). 7.刷新靶场(http://192.168.6.134:8090)的链接,抓包后改GET包为POST包,然后在发送的请求数据包中输入以下payload:?
8.go运行。? ?11.查看docker中新建文件情况: (1)查看运行中的docker
(2)进入docker:
(3)查看目录: ?三. 漏洞复现(二):反弹shell?????????1.启动靶场:
先启动vulhub的fastjson 1.2.24漏洞环境 Docker开启的8090端口 假设我们目标IP为192.168.6.134(虚拟机ip),此时我们访问192.168.6.134:8090 ????????2.在vulhub下的fastjson 1.2.24文件夹下保存以下代码为TouchFile.java文件(文件名可随便起):
? ? ? ? 3.编译.java文件,生成.class文件:
? ? ? ? 4.把编译好的class文件传到外网系统中(这里我传到kali服务器中),并在class文件所在的目录,Python起一个http服务。
然后查看此网址,会发现新建的文件: ? ? ? ? 5.使用marshalsec项目,启动RMI服务,监听9999端口并加载远程类TouchFile.class:
出现以下画面表示编译成功: 成功以后会在target目录下生成marshalsec-0.0.3-SNAPSHOT-all.jar文件 ? ? ? ? 6.接下来开启RMI服务
?其中ip地址为上面开通http服务的网址(我这里为虚拟机的ip:4444). 7.开启payload中的端口,进行监听:
8.刷新靶场(http://192.168.6.134:8090)的链接,抓包后改GET包为POST包,然后在发送的请求数据包中输入以下payload:?
8.go运行? 点击go,都会有反应? ?成功反弹shell。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 9:25:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |