首页 > 编程语言 > 详细

blackhat-New-Exploit-Technique-In-Java-Deserialization-Attack-笔记

时间:2020-02-04 19:46:17      阅读:90      评论:0      收藏:0      [点我收藏+]

java反序列化的攻击场景:

1.远程服务接收了不被信任的反序列化数据

2.classpath中存在序列化所需要的类

3.序列化的类中存在危险函数

从上面3点看出和以前看php的反序列化攻击场景从宏观上看差不多,首先是接收数据时反序列化了不被信任的序列化数据,php的当然是固定的unserialize函数,而java中通过调用对象输入流的readObject函数来进行反序列化,unserialize只需要从该入口向下找,而java则通常是先找到readObject函数再向上找对象是否可控

magic callback:

相对于php反序列化要执行的__destruct、__wakeup,java主要包括:

技术分享图片

 

技术分享图片

 比如这里就以反序列化导致文件删除为例子进行了一个说明,这个也是个cve,ysoserialize中也有该攻击链

一些常用的防御方法:

1.在反序列化的过程中验证输入流,如果反序列化所需要的类在黑名单中,则停止序列化的过程,weblogic就用的是加黑名单的方式保护应用

技术分享图片

2.jep290机制

即输入的反序列化数据进行过滤,官方从8u121,7u13,6u141分别支持了这个JEP,http://openjdk.java.net/jeps/290官方说明文档

3.rasp技术

4.java agent

上面讲了一些防御方法,然后就提出要找更基础的攻击向量

JDBC connection

这里要利用的主要有两点:

JDBC连接数据库的URL可控,在其中要添加连接数据库时的配置(自动反序列化)autoDeserializequeryInterceptors

第二个参数是用于触发漏洞

 

 

https://paper.seebug.org/454/ jep

https://xz.aliyun.com/t/1631 jep

 

blackhat-New-Exploit-Technique-In-Java-Deserialization-Attack-笔记

原文:https://www.cnblogs.com/tr1ple/p/12258047.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!