Loading

摘要: FastJson之autotype bypass 在1.2.25版本之后,添加了checkAutoType方法。在方法中引入了白名单(AutoType)、黑名单(denyList)和autoTypeSupport选项 checkAutoType方法 把ubuntu靶机的fastjson版本换到1.2 阅读全文
posted @ 2021-08-04 10:40 yyhuni's 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 看RMI漏洞时候,对其漏洞原理并不是很理解,所以简单调试了下源码加强下漏洞理解 由于要调试到RegistryImpl_Stub这种动态类,刚开始用的源码版本是JDK8u141,后来发现源码有些地方进行了修改,故此换回了JDK 7u80 以下是源码版本JDK 7u80的源码 创建注册中心 create 阅读全文
posted @ 2021-08-02 18:18 yyhuni's 阅读(291) 评论(0) 推荐(0) 编辑
摘要: Fastjson 1.2.22-24 反序列化漏洞分析(2) 1.环境搭建 我们以ubuntu作为被攻击的服务器,本机电脑作为攻击者 本机地址:192.168.202.1 ubuntu地址:192.168.202.129 JDK版本:jdk8u102 1.1 被攻击服务器 这里用ubuntu模拟被攻 阅读全文
posted @ 2021-08-02 18:17 yyhuni's 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 8u191后的JNDI注入利用 JNDI注入版本关系图,参考如下: 一、8u121之前 使用RMI + JNDI Reference利用 前面文章已经讲过了JNDI + RMI方式,直接利用marshalsec发布RMI服务到1099 java -cp marshalsec-0.0.3-SNAPSH 阅读全文
posted @ 2021-08-01 23:55 yyhuni's 阅读(27230) 评论(0) 推荐(1) 编辑
摘要: Fastjson 1.2.22-24 反序列化漏洞分析(1) 前言 FastJson是alibaba的一款开源JSON解析库,可用于将Java对象转换为其JSON表示形式,也可以用于将JSON字符串转换为等效的Java对象。 影响版本:1.2.22-24 官方通告:https://github.co 阅读全文
posted @ 2021-07-31 11:02 yyhuni's 阅读(211) 评论(0) 推荐(1) 编辑
摘要: Fastjson反序列化漏洞基础 FastJson是alibaba的一款开源JSON解析库,可用于将Java对象转换为其JSON表示形式,也可以用于将JSON字符串转换为等效的Java对象。 0x0 简单使用 pom.xml加入FastJson <dependency> <groupId>com.a 阅读全文
posted @ 2021-07-31 11:01 yyhuni's 阅读(164) 评论(2) 推荐(2) 编辑
摘要: JNDI注入基础 一、简介 JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API,命名服务将名称和对象联系起来,使得我们可以用名称访问对象。 这些命名/目录服务提供者: RMI (JAVA远 阅读全文
posted @ 2021-07-31 11:00 yyhuni's 阅读(1766) 评论(4) 推荐(0) 编辑
摘要: ysoserial exploit/JRMPClient 上一篇文章讲到,当服务器反序列化payloads/JRMPListener,即会开启端口监听。再使用exploit/JRMPClient模块发送payload,服务器就会把payload进行反序列化,从而完成进行攻击。 调用链分析 设置pay 阅读全文
posted @ 2021-07-28 10:54 yyhuni's 阅读(270) 评论(0) 推荐(0) 编辑
摘要: ysoserial payloads/JRMPClient 环境:JDK8u102 payloads/JRMPClient可以配合exploit/JRMPListener模块来使用 1.在自己服务器上使用exploit/JRMPListener来开启监听 2.把payloads/JRMPClient 阅读全文
posted @ 2021-07-28 10:54 yyhuni's 阅读(214) 评论(0) 推荐(0) 编辑
摘要: payloads/JRMPListener JRMPListener的攻击流程: 1.生成payloads/JRMPListener发送给服务器,当服务器反序列化payloads/JRMPListener后,即会开启一个端口进行监听。 2.使用exploit/JRMPClient模块发送payloa 阅读全文
posted @ 2021-07-28 10:53 yyhuni's 阅读(91) 评论(0) 推荐(0) 编辑
摘要: JNDI注入基础 一、简介 JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API,命名服务将名称和对象联系起来,使得我们可以用名称访问对象。 这些命名/目录服务提供者: RMI (JAVA远 阅读全文
posted @ 2021-07-28 10:52 yyhuni's 阅读(262) 评论(0) 推荐(0) 编辑
摘要: CC7也是一条比较通用的链了,不过对于其原理的话,其实还是挺复杂的。文章如有错误,敬请大佬们斧正 CC7利用的是hashtable#readObject作为反序列化入口。AbstractMap的equals来触发的LazyMap的get方法 POC分析 这条链太过于复杂,无法想象大佬们是怎么样的思维 阅读全文
posted @ 2021-07-12 22:18 yyhuni's 阅读(43) 评论(0) 推荐(0) 编辑
摘要: CC6的话是一条比较通用的链,在JAVA7和8版本都可以使用,而触发点也是通过LazyMap的get方法。 TiedMapEntry#hashCode 在CC5中,通过的是TiedMapEntry的toString调用到的LazyMap的get方法,而CC6则是通过TiedMapEntry的hash 阅读全文
posted @ 2021-07-11 11:45 yyhuni's 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 我们知道,AnnotationInvocationHandler类在JDK8u71版本以后,官方对readobject进行了改写。 所以要挖掘出一条能替代的类BadAttributeValueExpException 在CC5中除了有一个新的类BadAttributeValueExpExceptio 阅读全文
posted @ 2021-07-11 00:23 yyhuni's 阅读(35) 评论(0) 推荐(0) 编辑
摘要: ysoserial CommonsColletions4分析 其实CC4就是 CC3前半部分和CC2后半部分 拼接组成的,没有什么新的知识点。 不过要注意的是,CC4和CC2一样需要在commons-collections-4.0版本使用,3.1-3.2.1版本不能去使用,原因是Transformi 阅读全文
posted @ 2021-07-10 18:46 yyhuni's 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 上篇文章讲到CC3的TransformedMap链,这篇我们就来讲一下LazyMap链。 其实LazyMap链还是使用的TemplatesImpl承载payload,InstantiateTransformer、TrAXFilter、ChainedTransformer这三个来构造调用链。 和另一条 阅读全文
posted @ 2021-07-10 17:10 yyhuni's 阅读(30) 评论(0) 推荐(0) 编辑
摘要: CC3的利用链在JDK8u71版本以后是无法使用的,具体还是由于AnnotationInvocationHandler的readobject进行了改写。 而CC3目前有两条主流的利用链,利用TransformedMap或者LazyMap。我们这篇文章先讲TransformedMap链 Templat 阅读全文
posted @ 2021-07-10 17:07 yyhuni's 阅读(45) 评论(0) 推荐(0) 编辑
摘要: JAVA安全基础之代理模式(二) 上篇讲到静态代理模式,这时候我们发现,一个代理类只能为一个类服务,如果需要代理的类很多,那么就需要编写大量的代理类,比较繁琐。所以就有了动态代理 动态代理 动态代理的代理类,是在内存中构建代理对象,从而实现对目标对象的代理功能。 在这里我们需要知道两个类:1.Inv 阅读全文
posted @ 2021-06-26 17:01 yyhuni's 阅读(97) 评论(0) 推荐(0) 编辑
摘要: JAVA安全基础之代理模式(一) 代理模式是java的一种很常用的设计模式,理解代理模式,在我们进行java代码审计时候是非常有帮助的。 静态代理 代理,或者称为 Proxy ,简单理解就是事情我不用去做,由其他人来替我完成。在黄勇《架构探险》一书中,我觉得很有意思的一句相关介绍是这么说的: 赚钱方 阅读全文
posted @ 2021-06-24 18:09 yyhuni's 阅读(72) 评论(0) 推荐(0) 编辑
摘要: JAVA安全基础之反射 在JAVA安全中,反射是一个经常使用的技术,所以熟悉使用反射是非常必要的。下面就简单的讲下JAVA的反射的用法 什么是反射 每个类都有对应的Class类对象,该Class类对象包含该类的属性、方法等信息,这个Class类对象就是这个类的反射。 就像镜子一样,一个类照镜子后,镜 阅读全文
posted @ 2021-06-22 13:58 yyhuni's 阅读(65) 评论(0) 推荐(0) 编辑