Java反序列化漏洞修复

1、jar包反编译(JD-GUI)

2、反编译后的进行代码审核,看是否有前端payload中的数据直接被反序列化(如果Java应用对用户输入,即不可信数据做了反序列化处理,那么攻击者可以通过构造恶意输入,让反序列化产生非预期的对象,非预期的对象在产生过程中就有可能带来任意代码执行。)

3、修复方案

(1)重写 ObjectInputStream#resolveClass 方法resolveClass 会在 readObject 前自动触发,我们可以通过重写 resolveClass 来读取类名,判断使的类的合法性从修复漏洞

(2)修改serialVersionUID,Java在反序列化前后,如果serialVersionUID不一致的话会导致序列化失败,并抛出错误,InvalidClassException,我们可以通过JByteMod来修改⽬标类的suid导致该类反序列化失败

猜你喜欢

转载自blog.csdn.net/Dove_Knowledge/article/details/120995741