Apache Commons Collections2反序列化研究 环境准备 JDK 1.7 Commons Collections 4.0 javassit 前置知识 PriorityQueue() 使用默认的初始容量(11)创建一个 PriorityQueue,并根据其自然顺序对元素进行排序. PriorityQueue(int initialCapacity) 使用指定的初始容量创建一个 PriorityQueue,并根据其自然顺序对元素进行排序. 常见的方法: add(E e) 将指定的…
Apache Commons Collections1反序列化研究 环境准备 Apache Commons Collections 3.1版本 IDEA 需要一些java基础,反射.类对象.Classloader ctrl+shift+alt+s,导入jar包,也可以直接maven 导入yaso的包更方便 原理分析 感觉这篇文章把这个漏洞的原因讲的非常详细,https://xz.aliyun.com/t/136 Apache Commons Collections 是一个扩展了Java标准库里的…
0x00 前言 在ysoserial中,官方是没给gadget,这儿经过文章分析我认为的gadget,继承自AbstractTranslate的类被Javassist插桩后返回一个被修改过的templates(_bytecodes)并将其传给InstantiateTransformer后,InstantiateTransformer利用这个templates获得的构造函数加上从ConstantTransformer返回的TrAXFilter类将其实例化,实例化的过程中将会调用TrAXFilter…
Ysoserial Commons Collections2分析 About Commons Collections2 CC2与CC1不同在于CC2用的是Commons Collections4.0;同时利用方式CC2用到了Javassist动态编程,从功能上来说CC1用于执行命令,而CC2可以任意代码执行危害更大,所以像常用的shiro打内存马也会用到CC2. CC2 Gadget Chain Gadget chain: ObjectInputStream.readObject() Prior…
Java安全之Commons Collections2分析 首发:Java安全之Commons Collections2分析 0x00 前言 前面分析了CC1的利用链,但是发现在CC1的利用链中是有版本的限制的.在JDK1.8 8u71版本以后,对AnnotationInvocationHandler的readobject进行了改写.导致高版本中利用链无法使用. 这就有了其他的利用链,在CC2链里面并不是使用 AnnotationInvocationHandler来构造,而是使用 ​ javas…
Ysoserial Commons Collections3分析 写在前面 CommonsCollections Gadget Chains CommonsCollection Version JDK Version CommonsCollections1 CommonsCollections 3.1 - 3.2.1 1.7 (8u71之后已修复不可利用) CommonsCollections2 CommonsCollections 4.0 无限制 CommonsCollections3 Com…
Ysoserial Commons Collections7分析 写在前面 CommonsCollections Gadget Chains CommonsCollection Version JDK Version Note CommonsCollections1 CommonsCollections 3.1 - 3.2.1 1.7 (8u71之后已修复不可利用) CommonsCollections2 CommonsCollections 4.0 暂无限制 javassist Commons…
0x01.环境准备: Apache Commons Collections 3.1版本,下载链接参考: https://www.secfree.com/a/231.html jd jui地址(将jar包转化为java源码文件): https://github.com/java-https://www.secfree.com/a/231.html/jd-gui/releases 配置项目中的jdk版本: https://blog.csdn.net/qq_22076345/article/detai…
下面是k8脚本. # -*- coding: utf-8 -*- # Oracle Weblogic Server (10.3.6.0, 12.1.3.0, 12.2.1.2, 12.2.1.3) Deserialization Remote Command Execution Vulnerability (CVE-2018-2628) from __future__ import print_function import binascii import os import socket im…
零.补充: 补充于2018-02-08,之前研究时候有一个疑惑,python的序列化成二进制,打web服务怎么传这个二进制对象呢,今天请教了身边大神(传说的九零后黑客代表),可以使用base64传输. 测试代码: #client.py import os import sys import base64 import socket import cPickle #定义payload类型 class payload(object): def __init__(self,command): self…
0x01.POC分析 //创建一个CtClass对象的容器 ClassPool classPool=ClassPool.getDefault(); //添加AbstractTranslet的搜索路径 classPool.appendClassPath(AbstractTranslet); //创建一个新的public类 CtClass payload=classPool.makeClass("CC2"); //让上面创建的类继承AbstractTranslet payload.setS…
原文:http://blog.chaitin.com/2015-11-11_java_unserialize_rce/ 博主也是JAVA的,也研究安全,所以认为这个漏洞非常严重.长亭科技分析的非常细致. 1 背景 2015年11月6日,FoxGlove Security安全团队的@breenmachine 发布的一篇博客[3]中介绍了如何利用Java反序列化漏洞,来攻击最新版的WebLogic.WebSphere.JBoss.Jenkins.OpenNMS这些大名鼎鼎的Java应用,实现远程代码…
前言 学习本系列文章需要的Java基础: 了解Java基础语法及结构(菜鸟教程) 了解Java面向对象编程思想(快速理解请上知乎读故事,深入钻研建议买本<疯狂Java讲义>另外有一个刘意老师的教学视频也可以了解一下,其中关于面向对象思想的介绍比较详细.链接:https://pan.baidu.com/s/1kUGb3D1#list/path=%2F&parentPath=%2FJava%E7%B1%BB 密码:kk0x) 基本的Eclipse使用(自行百度) 其实只要大学上过Java课…
ysoserial CommonsColletions2分析 前言 此文章是ysoserial中 commons-collections2 的分析文章,所需的知识包括java反射,javassist. 在CC2中是用的 PriorityQueue#reaObject作为反序列化的入口,利用javassist创建了一个攻击类,使用TemplatesImpl类来承载他 而CC1利用链在JDK1.8 8u71版本以后是无法使用的,具体是AnnotationInvocationHandler的reado…
Java unserialize serialized Object(AnnotationInvocationHandler.ysoserial) In readObject() LeadTo TransformedMap Change LeadTo InvokerTransformer(Evil MethodName/Args) catalog . Java 序列化 . Commons Collections . Java反序列化漏洞 . 漏洞利用实例 . 修复策略 . 安全问题延伸讨论 1.…
java反序列化漏洞是与java相关的漏洞中最常见的一种,也是网络安全工作者关注的重点.在cve中搜索关键字serialized共有174条记录,其中83条与java有关:搜索deserialized共有20条记录,其中10条与java有关.这些出现反序列化漏洞的框架和组件包括的大名鼎鼎的spring,其中还有许多Apache开源项目中的基础组件.例如Apache Commons Collections. 这些基础组件大量被其他框架或组件引用,一旦出现漏洞就会引起大面积的网络安全事故,后果非常严…
0 前言 本篇是系列文章的第一篇,主要看看Dubbo使用反序列化协议Hessian2时,存在的安全问题.文章需要RPC.Dubbo.反序列化等前提知识点,推荐先阅读和体验Dubbo以及反序列化漏洞. Dubbo源码分析 RPC框架dubbo架构原理及使用说明 RPC 框架 Dubbo 从理解到使用(一) [RPC 框架 Dubbo 从理解到使用(二) 1 反序列化协议-Hessian2 hessian2是由caucho开发的基于Binary-RPC协议实现的远程通讯库,知名Web容器Resin的…
1. 条件1)攻击者可以控制服务器上的文件名/文件内容2)tomcat context配置了persistencemanager的fileSotre3) persistenceManager 配置了sessionAttributeValueClassNameFilter的值为NULL或者宽松过滤4) 攻击者知道fileSotre存放位置条件非常苛刻, 需要同时满足该4个条件.2. 漏洞原理利用tomcat创建的session,反序列后进行恶性攻击. 一般而言,session存在于服务器内存中,当…
Java安全之Commons Collections3分析 文章首发:Java安全之Commons Collections3分析 0x00 前言 在学习完成前面的CC1链和CC2链后,其实再来看CC3链会比较轻松.CC1的利用链是 Map(Proxy).entrySet()触发AnnotationInvocationHandler.invoke(),而CC2链的利用链是通过InvokerTransformer.transform()调用newTransformer触发RCE.这里就不说这么详细感…
0x00 前言 java代码审计相关文章整理,持续更新. 0x01 java环境基础 搭建Java Web开发环境   配置IDEA编辑器开发java web,从0创建项目   IDEA动态调试   IDEA配置tomcat   maven配置和IDEA创建maven项目   IDEA如何导入eclipse项目   java基础环境配置,来自漏洞社区   0x02 java语法知识 菜鸟教程   理解java的三大特性之封装   理解java的三大特性之继承   理解java的三大特性之多态  …
ref:https://chybeta.github.io/2017/08/19/Web-Security-Learning/ ref:https://github.com/CHYbeta/Web-Security-Learning Web-Security-Learning 学习资料01月29日更新: 新收录文章 mysql SSRF To RCE in MySQL MSSQL MSSQL不使用xp_cmdshell执行命令并获取回显的两种方法 postgresql 渗透中利用postgres…
Web Security sql注入 MySql MySQL False 注入及技巧总结 MySQL 注入攻击与防御 sql注入学习总结 SQL注入防御与绕过的几种姿势 MySQL偏门技巧 mysql注入可报错时爆表名.字段名.库名 高级SQL注入:混淆和绕过 Mysql约束攻击 Mysql数据库渗透及漏洞利用总结 MySQL绕过WAF实战技巧 NetSPI SQL Injection Wiki SQL注入的“冷门姿势” 时间延迟盲注的三种加速注入方式mysql 基于时间的高效的SQL盲注-使用…
简述 ysoserial很强大,花时间好好研究研究其中的利用链对于了解java语言的一些特性很有帮助,也方便打好学习java安全的基础,刚学反序列化时就分析过commoncollections,但是是跟着网上教程,自己理解也不够充分,现在重新根据自己的调试进行理解,这篇文章先分析URLDNS 利用链分析: 调用链如上图所示,由hashmap的key进行hash计算时,如果key为URL类的对象,则调用key.hashcode实际为调用了URL类对象的hashcode,从而触发dns解析,这个手写…
Scanners-Box是来自github平台的开源扫描仪的集合,包括子域枚举,数据库漏洞扫描程序,弱密码或信息泄漏扫描仪,端口扫描仪,指纹扫描仪和其他大型扫描仪,模块化扫描仪等.对于其他众所周知的扫描工具,如:Nmap,w3af,brakeman将不会包含在收集范围内. 安全行业从业人员常用工具指引,包括各类在线安全学习资料和安全检测工具,欢迎大家持续贡献! 入门指南 https://wizardforcel.gitbooks.io/web-hacking-101/content/      …
博客园很早就开通了,当时下决心要把自己的经验心得记录上去,但是却没有做到,因为一直觉得自己搞得东西可能还是比较的初级,感觉拿不出手,所以也就是只是把它记录在在印象笔记上面(三年下来,还是整理和收藏了一些笔记和心得的,但也导致了一个问题,就是自己写起来就比较的随便,所以现在还是觉得要放到网上来,一来为了整理自己的思路希望能对安全漏洞有更深的认识和理解,二来也希望能帮助一些人少走些弯路.),后续把一些自认为还可以的心得体会整理分享出来,而且发现整理以往的漏洞和笔记时候往往会有不一样的感悟. 最近研究…
0x01 Brief Description java处理JSON数据有三个比较流行的类库,gson(google维护).jackson.以及今天的主角fastjson,fastjson是阿里巴巴一个开源的json相关的java library,地址在这里,https://github.com/alibaba/fastjson,Fastjson可以将java的对象转换成json的形式,也可以用来将json转换成java对象,效率较高,被广泛的用在web服务以及android上,它的JSONStr…
前言 关于java反序列化漏洞的原理分析,基本都是在分析使用Apache Commons Collections这个库,造成的反序列化问题.然而,在下载老外的ysoserial工具并仔细看看后,我发现了许多值得学习的知识. 至少能学到如下内容: 不同反序列化payload玩法灵活运用了反射机制和动态代理机制构造POC java反序列化不仅是有Apache Commons Collections这样一种玩法.还有如下payload玩法: CommonsBeanutilsCollectionsLog…
经过一段时间的琢磨与反思,以及重读了大量之前看不懂的反序列化文章,目前为止算是对java反序列化这块有了一个阶段性的小理解. 目前为止,发送的所有java反序列化的漏洞中.主要需要两个触发条件: 1.反序列化的攻击入口 2.反序列化的pop攻击链 这两个条件缺一不可.网上大量分析gadgets的文章方法,让人误以为有攻击链就可以反序列化.其实这块是有一定的误导性的.在我最初研究反序列化的时候,我觉得攻击链是最重要的.其实不然,反序列化的攻击入口才是至关重要的.因为现阶段的java环境加上java…
目录 前言 基础知识 Transformer 利用InvokerTransformer造成命令执行 Map TransformedMap LazyMap AnnotationInvocationHandler 动态代理 Commons Collections Gadget 分析 CommonsCollections1 CommonsCollections2 疑问 CommonsCollections3 CommonsCollections4 CommonsCollections5 Commons…
Java安全之反序列化回显研究 0x00 前言 续上文反序列化回显与内存马,继续来看看反序列化回显的方式.上篇文中其实是利用中间件中存储的Request 和Response对象来进行回显.但并不止这么一种方式. 0x01 回显方式 中间件回显 defineClass Linux描述符回显 RMI绑定实例 URLClassLoader抛出异常 写文件css.js dnslog defineClass异常回显 异常类: package com.nice0e3; import java.io.Buff…