序列化是Java提供的一种对象持久化保存的技术。常规对象在程序结束后会被回收,如果想把对象持久保存方便下次使用,需要序列化和反序列化。

序列化有两个前提:

  • 类必须实现java.io.serializable接口
  • 类所有字段都必须是可序列化的

 

反序列化漏洞利用原理

1. 利用重写ObjectInputStream的readObject

重写ObjectInputStream的readObject方法时,可执行恶意代码。定义一个类,并实现serializable接口:

public class User implements Serializable {

    public String name;
    public int age;
    public String  getUserInfo(){
        return "user name: "+this.name +" age: "+this.age;
    }
}
View Code

相关文章:

  • 2021-07-02
  • 2022-12-23
  • 2021-09-06
  • 2022-12-23
  • 2022-12-23
  • 2022-03-02
  • 2021-12-03
  • 2022-01-13
猜你喜欢
  • 2022-12-23
  • 2021-10-06
  • 2021-10-04
  • 2021-10-22
  • 2021-10-08
相关资源
相似解决方案