XMLDecoder反序列化

XMLDecoder反序列化

基础知识

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

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

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

在decode反序列化方法后,控制台成功打印出反序列化的对象。

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

漏洞原因

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

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

<object class="javax.swing.JButton">
  <string>Press me</string>
</object>

new JButton("Press me");

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

python 复制代码
<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方法。

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

总结

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

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

的解析过程

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

图片都是用的这个链接的

相关推荐
知攻善防实验室2 天前
JAVA安全之类加载器
java·开发语言·java安全
脸红ฅฅ*的思春期9 天前
Java安全—SpringBoot&Actuator&监控泄露&Swagger自动化
spring boot·自动化·swagger·actuator·java安全
A尘埃3 个月前
Java安全(加密+HTTPS+WEB安全)
java安全
CVE-柠檬i4 个月前
Java安全-动态加载字节码
安全·java安全
^ tr1ple ^7 个月前
JDK高版本下JNDI注入绕过
java·安全·java安全
Z3r4y10 个月前
【Web】关于FastJson反序列化开始前的那些前置知识
java·web·ctf·fastjson·反序列化·java安全·fastjson反序列化
9eek10 个月前
简单看下最近的Spring Secrurity、Spring漏洞(CVE-2024-22234、CVE-2024-22243)
网络安全·java安全
Ch4ser1 年前
Actuator内存泄露及利用&Swagger未授权&自动化测试实现
自动化·springboot·swagger·actuator·java安全·未授权
Ch4ser1 年前
JNDI注入&Log4j&FastJson&白盒审计&不回显处理
log4j·fastjson·jndi注入·java安全