XMLDecoder反序列化

news/2024/9/15 21:35:36/ 标签: java安全

XMLDecoder反序列化

基础知识

就简单讲讲吧,就是为了解析xml内容的

一般我们的xml都是标签属性这样的写法

比如person对象以xml的形式存储在文件中

1643810762_61fa8fca0420a92b6a49c.png!small?1643810762545

在decode反序列化方法后,控制台成功打印出反序列化的对象。1643810770_61fa8fd28ea357f38ac8c.png!small?1643810771086

就是可以根据我们的标签识别是什么成分的

漏洞原因

我们有些xml标签有特殊的作用

object标签的使用相当于new一个新对象,其中的string标签为构造方法需要的参数。

<object class="javax.swing.JButton"><string>Press me</string>
</object>new JButton("Press me");

void标签的method属性可以在反序列化的过程中自动执行,其中的string标签为方法调用的参数。

<object class="javax.swing.JButton"><string>Press me</string><void method="setName"><string>Greeting</string></void>
</object>JButton button1 = new JButton("Press me");
button1.setName("Greeting");

其实有了上面的这些标签,我们就能够执行命令了

漏洞演示

使用网上找到POC,其中object反序列化类为java.lang.ProcessBuilder,构造方法参数为calc(windows操作系统上的计算器程序),void标签声明了反序列化过程中调用的方法为start方法。1643810854_61fa90262ee375f1e0b46.png!small?1643810854748

就可以实例化我们的ProcessBuilder,调用它的start方法,然后传入calc参数

总结

因为比较简单,自己也没有去复现一下怎么的,也没有去调试,其实调试就是调试对标签的解析过程

参考https://www.freebuf.com/articles/web/321222.html

的解析过程

参考https://www.freebuf.com/articles/web/321222.html

图片都是用的这个链接的


http://www.ppmy.cn/news/1505071.html

相关文章

flutter 做代码混淆

第一种、手动混淆 修改代码中出现次数多的 类目 方法 。修改静态资源的名字&#xff0c;转静态资源为webp 第二种、使用flutter 自带的命令行工具进行混淆 混淆 Dart 代码 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 使用pragma(vm:entry-point) 装饰器修改方…

vue3项目,应用初始化过程

在 Vue 3 项目中&#xff0c;应用初始化过程涉及多个步骤&#xff0c;从创建 Vue 实例到挂载到 DOM 上。以下是详细的初始化过程&#xff0c;包括关键步骤和代码示例。 1. 创建 Vue 应用实例 首先&#xff0c;你需要使用 ​​createApp​​ 函数创建一个 Vue 应用实例。这个实…

Skywalking9部署的问题

1. skywalking9需要使用es8。不支持es7&#xff0c;这里要注意&#xff0c;需要修改es版本。 2. es8部署的时候&#xff0c;默认是配置了安全选项的&#xff0c;需要把安全配置关掉&#xff0c;或者修改skywalking的配置文件&#xff0c;设置相关配置。 这里偷懒&#xff0c;…

kickstart自动脚本制作

克隆7主机&#xff0c;配置网络 安装图形 yum group install "Server with GUI" -y 有的话直接切换 init 5 关闭 Vmware dhcp 安装图形化生成kickstar自动安装脚本的工具 yum install system-config-kickstart -y 配置http 安装 yum install httpd -y 启动服务…

SAP MM学习笔记 - 豆知识02 - MR21 修改物料原价,MM02 修改基本数量单位/评价Class,MMAM 修改物料类型/评价Class

上一章讲了一些豆知识。比如 - MM50 批量扩张品目 - XK05/06 Block/消除供应商 - MM06/MM16 品目消除 - SE11/SE16/SE16/SE16N/SE16H/DB02 等查看常用的操作Table和数据的T-code SAP MM学习笔记- 豆知识01 - MM50 批量扩张&#xff0c;XK05/XK06 Block/消除供应商&#xf…

【归纳】常见函数模版和解析2(含进制转换详细代码)

【归纳】常见函数模版和解析2&#xff0c;含进制转换详细代码 1.计算阶乘2.斐波那契数列3.进制转换3.1.十进制转n进制3.1.1.迭代法3.1.2.递归法 3.2.n进制转十进制3.3.a进制转b进制3.4.代码整合 1.计算阶乘 阶乘的定义&#xff1a;阶乘符号为!,即 n ! 1 2 3 . . . ( n − …

【链表OJ】常见面试题

学习完链表后&#xff0c;当然还需要实操才行。 文章目录 1.[移除链表元素](https://leetcode.cn/problems/remove-linked-list-elements/description/)1.1 题目要求1.2 迭代法1.3 递归法 2. [反转链表](https://leetcode.cn/problems/reverse-linked-list/description/)2.1 题…

《LeetCode热题100》---<5.①普通数组篇五道>

本篇博客讲解LeetCode热题100道普通数组篇中的五道题 第一道&#xff1a;最大子数组和&#xff08;中等&#xff09; 第二道&#xff1a;合并区间&#xff08;中等&#xff09; 第一道&#xff1a;最大子数组和&#xff08;中等&#xff09; 法一&#xff1a;贪心算法 class So…

共享`pexlinux`数据文件的网络服务

实验环境准备&#xff1a; 1.红帽7主机 2.要全图形安装 3.配置网络为手动&#xff0c;配置网络可用 4.关闭vmware DHCP功能 一、kickstart自动安装脚本制作 1.安装图形化生成kickstart自动脚本安装工具 2.启动图形制作工具 3.图形配置脚本 这里使用的共享方式是http&#xff0…

酒店管理小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;酒店管理员管理&#xff0c;房间类型管理&#xff0c;房间信息管理&#xff0c;订单信息管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;房间信息…

微应用(Micro-Applications)、微前端(Micro Frontend)、Qiankun 框架之间的区别和联系

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo :联系我们:VX :tja6288 / EMAIL: 347969164@qq.com 文章目录 微应用(Micro-Applications)、微…

Go语言加Vue3零基础入门全栈班11 Go语言+gorm用户管理系统实战 2024年08月03日 课程笔记

概述 如果您没有Golang的基础&#xff0c;应该学习如下前置课程。 Golang零基础入门Golang面向对象编程Go Web 基础Go语言开发REST API接口_20240728Go语言操作MySQL开发用户管理系统API教程_20240729Redis零基础快速入门_20231227GoRedis开发用户管理系统API实战_20240730Mo…

JS如何实现禁止截屏、打印、另存为操作?

禁止缓存可以前台HTML使用 <meta http-equiv="pragma" content="no-cache" /> 屏蔽选中、粘贴、复制、剪切、右键菜单、禁止新窗口打开 HTML <body οncοntextmenu="return false" onselectstart="return false" οncοn…

搭建 Rancher 服务,配置k8s集群

1. 前提条件 前提条件&#xff1a; 安装docker&#xff0c;要求版本各节点版本一致。网上还有额外的要求&#xff1a;关闭swap、禁用selinux等等。 2. 搭建 Rancher 服务 直接通过docker命令实现即可&#xff0c;很方便。 docker run -d \--name rancher \--restart unles…

go的并发任务如何优雅的实现错误终止

errgroup使用案例 在Go语言中&#xff0c;并发任务通常通过goroutine来实现&#xff0c;而错误处理和任务终止的优雅性则依赖于适当的同步机制和错误传播策略。 场景: 管理一个任务的一组子任务&#xff0c;每个子任务一个协程每个子任务必须保证都成功&#xff0c;一个出现…

注意!!可能这是系统分析师旧教程最后一次考试,赶紧学起来

系统分析师考试是全国计算机技术与软件专业技术资格考试的高级水平考试之一&#xff0c;它是一项专业考试&#xff0c;旨在通过对计算机系统的规划、分析和设计来培养行业内的专业技术人才。近日在国家版本数据中心&#xff0c;查到系统分析师已经有2024最新版的教程出来了&…

EasyAR_稀疏空间图

EasyAR_稀疏空间图 EasyAR4.6.3 丨 Unity2020.3.15f2 1.创建稀疏空间地图 在EasyAR开发中心后台创建Scene许可证密钥&#xff0c;并且使用稀疏空间地图 2.设置稀疏空间地图库名&#xff0c;对稀疏空间地图进行管理&#xff0c;设置密钥 3.复制密钥到Unity中 添加Spatial Map Ap…

Xml,Json,Protobuffer等序列化的区别。如何选型

Xml,Json,Protobuffer等序列化的区别。如何选型 序列化&#xff1a;将对象转换为字节序列的过程称为对象的序列化&#xff1b; 反序列化&#xff1a;将字节序列恢复为对象的过程称为对象的反序列化&#xff1b; 什么时候需要序列化&#xff1f; 当你需要把内存中的对象保存到一…

深入C# .NET核心:委托与事件机制全解析

摘要&#xff1a; 在C# .NET编程中&#xff0c;委托和事件是实现异步编程和对象间通信的关键机制。理解它们的工作原理对于编写高效、响应式的应用程序至关重要。本文将深入探讨C# .NET中的委托与事件&#xff0c;从基础概念到高级应用&#xff0c;为读者提供全面的指导。 正文…

IDC权威认可:亚信安全引跑中国DDI市场

近日&#xff0c;国际数据公司&#xff08;IDC&#xff09;正式发布了《IDC China Semiannual DDI Tracker, 2023H2》&#xff0c;亚信安全域名服务和地址分配及管理系统&#xff08;AIDDI&#xff09;凭借在企业核心网络防护中自动化、安全性、智能化的突出能力&#xff0c;占…