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

图片都是用的这个链接的

相关推荐
癞皮狗不赖皮6 天前
WEB攻防-Java安全&SPEL表达式&SSTI模版注入&XXE&JDBC&MyBatis注入
web安全·java安全
cop_g7 天前
Java安全-类的动态加载
java·代码审计·java安全
脸红ฅฅ*的思春期2 个月前
JAVA安全—反射机制&攻击链&类对象&成员变量方法&构造方法
反序列化·反射机制·java安全·链条构造
摸鱼也很难2 个月前
安全开发 JavaEE && 反射机制 && 对象 成员变量 构造方法 成员方法 && 攻击链
java·java-ee·java安全
摸鱼也很难2 个月前
javaEE安全开发 && SQL预编译 && Filter过滤器 && Listener 监听器 && 访问控制
java-ee·java安全·内存马
知攻善防实验室3 个月前
JAVA安全之类加载器
java·开发语言·java安全
脸红ฅฅ*的思春期4 个月前
Java安全—SpringBoot&Actuator&监控泄露&Swagger自动化
spring boot·自动化·swagger·actuator·java安全
A尘埃6 个月前
Java安全(加密+HTTPS+WEB安全)
java安全
CVE-柠檬i7 个月前
Java安全-动态加载字节码
安全·java安全