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标准库里的…
Apache Commons Collections2反序列化研究 环境准备 JDK 1.7 Commons Collections 4.0 javassit 前置知识 PriorityQueue() 使用默认的初始容量(11)创建一个 PriorityQueue,并根据其自然顺序对元素进行排序. PriorityQueue(int initialCapacity) 使用指定的初始容量创建一个 PriorityQueue,并根据其自然顺序对元素进行排序. 常见的方法: add(E e) 将指定的…
0x00 前言 在ysoserial中,官方是没给gadget,这儿经过文章分析我认为的gadget,继承自AbstractTranslate的类被Javassist插桩后返回一个被修改过的templates(_bytecodes)并将其传给InstantiateTransformer后,InstantiateTransformer利用这个templates获得的构造函数加上从ConstantTransformer返回的TrAXFilter类将其实例化,实例化的过程中将会调用TrAXFilter…
Java安全之Commons Collections1分析(二) 0x00 前言 续上篇文,继续调试cc链.在上篇文章调试的cc链其实并不是一个完整的链.只是使用了几个方法的的互相调用弹出一个计算器. Java安全之Commons Collections1分析(一) 下面来贴出他的完整的一个调用链 Gadget chain: ObjectInputStream.readObject() AnnotationInvocationHandler.readObject() Map(Proxy).ent…
Java安全之Commons Collections1分析(一) 0x00 前言 在CC链中,其实具体执行过程还是比较复杂的.建议调试前先将一些前置知识的基础给看一遍. Java安全之Commons Collections1分析前置知识 0x01 CC链分析 这是一段poc代码,执行完成后会弹出一个计算器. import org.apache.commons.collections.*; import org.apache.commons.collections.functors.Chained…
Java安全之Commons Collections1分析前置知识 0x00 前言 Commons Collections的利用链也被称为cc链,在学习反序列化漏洞必不可少的一个部分.Apache Commons Collections是Java中应用广泛的一个库,包括Weblogic.JBoss.WebSphere.Jenkins等知名大型Java应用都使用了这个库. 0x01 前置知识 这里先来看一段网上找的,poc代码 import org.apache.commons.collectio…
Java安全之Commons Collections1分析(三) 0x00 前言 继续来分析cc链,用了前面几篇文章来铺垫了一些知识.在上篇文章里,其实是硬看代码,并没有去调试.因为一直找不到JDK的低版本. 全靠脑子去记传参内容尝试理解.后面的其实就简单多了,在上篇文章的基础上再去做一个分析. ​ Java安全之URLDNS链 Java安全之Commons Collections1分析前置知识 Java安全之Commons Collections1分析(一) Java安全之Commons Co…
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…
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…
0x01.基础知识铺垫 接下来这个过程将涉及到几个接口和类 1.LazyMap 我们通过下⾯这⾏代码对innerMap进⾏修饰,传出的outerMap即是修饰后的Map: Map outerMap = TransformedMap.decorate(innerMap, valueTransformer); 2.Transformer Transformer是⼀个接⼝,它只有⼀个待实现的⽅法: 3.ConstantTransformer ConstantTransformer是实现了Transfo…
零.补充: 补充于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…
原文: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课…
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存在于服务器内存中,当…
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…