- 博客(72)
- 资源 (3)
- 收藏
- 关注
原创 利用shiro反序列化注入冰蝎内存马
# 利用shiro反序列化注入冰蝎内存马文章首发先知社区:https://xz.aliyun.com/t/10696一、shiro反序列化注入内存马1)tomcat filter内存马先来看一个普通的jsp写入tomcat filter内存马的代码:<%@ page import="org.apache.catalina.core.ApplicationContext" %>...
2021-12-27 21:30:00
336
原创 ysoserial-CommonsBeanutils1的shiro无依赖链改造
ysoserial-CommonsBeanutils1的shiro无依赖链改造一、CB1利用链分析此条利用链需要配合Commons-Beanutils组件来进行利用,在shiro中是自带此组件的。先上大佬写的简化版利用链,和ysoserial中的代码有点不同,但原理是一样的import com.sun.org.apache.xalan.internal.xsltc.trax.Templa...
2021-12-05 10:35:00
159
原创 利用Fastjson注入Spring内存马
此篇文章在于记录自己对spring内存马的实验研究一、环境搭建搭建漏洞环境,利用fastjson反序列化,通过JNDI下载恶意的class文件,触发恶意类的构造函数中代码,注入controller内存马。1)组件版本:fastjson: 1.2.24spring-mvc: 4.3.28.RELEASEJDK: 8u1212)搭建springMVC+fastjson漏洞环境可...
2021-11-19 23:46:00
123
原创 JSONP劫持
JSONP介绍为了实现跨域,目前主流的两种方法就是JSONP和CORS。原理是利用<script>标签中的src属性没有跨域限制JSONP跨域的用法可以利用回调函数,比如以下的callback写法<script src="http://jsonp.com/callback.php?callback=hehehe"></script>回调函数:把函数名...
2021-11-16 21:57:00
76
原创 PHP SECURITY CALENDAR 2017 (1-10题)
PHP SECURITY CALENDAR 2017 (1-10题)Day 1 - Wish Listclass Challenge { const UPLOAD_DIRECTORY = './solutions/'; private $file; private $whitelist; public function __construct($file) ...
2021-11-08 14:54:00
42
原创 Tomcat 内存马(二)Filter型
一、Tomcat处理请求在前一个章节讲到,tomcat在处理请求时候,首先会经过连接器Coyote把request对象转换成ServletRequest后,传递给Catalina进行处理。在Catalina中有四个关键的容器,分别为Engine、Host、Context、Wrapper。这四种容器成套娃式的分层结构设计。接下来我们知道当tomcat接收到请求时候,依次会经过Listen...
2021-11-06 10:35:00
30
原创 DeDeCMS v5.7任意用户登录及密码修改_漏洞分析
一、 前台任意用户登陆漏洞复现1)登录注册的000001账号:2)访问空间,http://your_website/member/index.php?uid=000001后,设置DedeUserID值为last_vid,DedeUserID__ckMd5值为last_vid__ckMd53)设置完成后访问http://dedecms/member/index.php即可访问到id为1...
2021-11-05 14:47:00
101
原创 Tomcat 内存马(一)Listener型
一、Tomcat介绍Tomcat的主要功能tomcat作为一个 Web 服务器,实现了两个非常核心的功能:Http 服务器功能:进行 Socket 通信(基于 TCP/IP),解析 HTTP 报文Servlet 容器功能:加载和管理 Servlet,由 Servlet 具体负责处理 Request 请求以上两个功能,分别对应着tomcat的两个核心组件连接器(Connector)...
2021-11-05 13:14:00
50
原创 Shiro 550反序列化漏洞分析
Shiro 550反序列化漏洞分析一、漏洞简介影响版本:Apache Shiro < 1.2.4特征判断:返回包中包含rememberMe=deleteMe字段。Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致...
2021-10-07 22:32:00
57
原创 利用Java Agent进行代码植入
利用Java Agent进行代码植入Java Agent 又叫做 Java 探针,是在 JDK1.5 引入的一种可以动态修改 Java 字节码的技术。可以把javaagent理解成一种代码注入的方式。但是这种注入比起spring的aop更加的优美。Java agent的使用方式有两种:实现premain方法,在JVM启动前加载。实现agentmain方法,在JVM启动后加载。pre...
2021-10-06 16:11:00
75
原创 Javassist基础学习
Javassist基础学习概述我们知道 Java 字节码以二进制的形式存储在 class 文件中,每一个 class 文件包含一个 Java 类或接口。Javaassist 就是一个用来处理 Java 字节码的类库。关键类介绍ClassPool:javassist的类池,使用ClassPool 类可以跟踪和控制所操作的类,它的工作方式与 JVM 类装载器非常相似CtClass:...
2021-10-03 19:23:00
26
原创 weblogic漏洞分析之CVE-2021-2394
weblogic漏洞分析之CVE-2021-2394简介Oracle官方发布了2021年7月份安全更新通告,通告中披露了WebLogic组件存在高危漏洞,攻击者可以在未授权的情况下通过IIOP、T3协议对存在漏洞的WebLogic Server组件进行攻击。成功利用该漏洞的攻击者可以接管WebLogic Server。这是一个二次反序列化漏洞,是CVE-2020-14756和CVE-202...
2021-09-15 15:43:00
61
原创 Weblogic漏洞分析之JNDI注入-CVE-2020-14645
Weblogic漏洞分析之JNDI注入-CVE-2020-14645Oracle七月发布的安全更新中,包含了一个Weblogic的反序列化RCE漏洞,编号CVE-2020-14645,CVS评分9.8。该漏洞是针对于CVE-2020-2883的补丁绕过,CVE-2020-2883补丁将MvelExtractor和ReflectionExtractor列入黑名单,因此需要另外寻找一个存在ext...
2021-09-15 15:43:00
64
原创 Weblogic Coherence组件漏洞初探CVE-2020-2555
Weblogic Coherence组件漏洞初探CVE-2020-25552020年1月,互联网上爆出了weblogic反序列化远程命令执行漏洞(CVE-2020-2555),Oracle Fusion中间件Oracle Coherence存在缺陷,攻击者可利用该漏洞再未授权情况下通过构造T3协议请求,获取weblogic服务器权限,执行任意命令。漏洞影响情况:Oracle Coheren...
2021-09-15 15:42:00
36
原创 weblogic之XXE利用与分析
weblogic之XXE利用与分析本篇文章漏洞环境使用p神的CVE-2018-2628本机IP:192.168.202.1被攻击主机IP:192.168.202.129一、 xxer工具1.1 简介xxer能快速搭建起xxe的盲注环境,下载地址:https://github.com/TheTwitchy/xxer工具使用python2启动,-h可查看帮助信息C:\Users\as...
2021-08-24 22:17:00
35
原创 weblogic漏洞分析之CVE-2017-3248 & CVE-2018-2628
CVE-2017-3248 & CVE-2018-2628后面的漏洞就是2017-3248的绕过而已,所以poc都一样,只是使用的payload不同本机开启JRMP服务端 -》利用T3协议发送payload使得weblogic反序列化后,开启JRMP客户端,并连接服务端 -》服务端发送exp给客户端,客户端上的DGC接收到响应即会反序列化。详细的细节看我的另一篇文章:ysoseri...
2021-08-23 21:05:00
51
原创 weblogic漏洞分析之CVE-2017-10271
weblogic漏洞分析之CVE-2017-10271一、环境搭建1)配置docker这里使用vulhub的环境:CVE-2017-10271编辑docker-compose.yml文件,加入8453端口version: '2'services: weblogic: image: vulhub/weblogic:10.3.6.0-2017 ports: - "7001:7001" - "8453:8453"启动dockerdocker-compose
2021-08-17 16:40:52
1563
原创 weblogic漏洞分析之CVE-2016-0638
weblogic漏洞分析之CVE-2016-0638一、环境搭建:这里使用前一篇文章的环境,然后打上补丁上一篇文章:https://www.cnblogs.com/yyhuni/p/15137095.html下载补丁p20780171_1036_Generic和p22248372_1036012_Generic解压补丁后,复制补丁到Docker中:docker cp ./p22248372_1036012_Generic/ d1b6be39e32e:/home/docker cp ./p2
2021-08-17 16:40:11
2195
原创 weblogic漏洞初探之CVE-2015-4852
weblogic漏洞初探之CVE-2015-4852一、环境搭建1. 搭建docker这里用了vulhub的环境进行修改:https://vulhub.org/新建个文件夹,创建两个文件docker-compose.yml、DockerFiledocker-compose.yml:version: '2'services: weblogic: image: vulhub/weblogic:10.3.6.0-2017 ports: - "7001:7001" -
2021-08-13 13:55:44
746
原创 JAVA反序列化的简单探究
本文主要是探究,在反序列化过程中是怎么调用到readObject、readResolve、readExternal方法的问题新建一个需要被序列化的类ObjectA,写入readResolve和readObject方法:package com.yy.serialize.readResolve;import java.io.IOException;import java.io.Serializable;public class ObjectA implements Serializable {
2021-08-11 11:15:17
197
原创 FastJson之autotype bypass
FastJson之autotype bypass在1.2.25版本之后,添加了checkAutoType方法。在方法中引入了白名单(AutoType)、黑名单(denyList)和autoTypeSupport选项checkAutoType方法把ubuntu靶机的fastjson版本换到1.2.25,使用原始的payload进行debug{"xxx":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://192.168.2
2021-08-04 10:43:02
797
原创 Fastjson 1.2.22-24 反序列化漏洞分析(2)
Fastjson 1.2.22-24 反序列化漏洞分析(2)1.环境搭建我们以ubuntu作为被攻击的服务器,本机电脑作为攻击者本机地址:192.168.202.1ubuntu地址:192.168.202.129JDK版本:jdk8u1021.1 被攻击服务器这里用ubuntu模拟被攻击的服务器在ubuntu搭建一个springboot网站,用来模拟解析fastjson:pom.xml<parent> <groupId>org.springfram
2021-08-02 18:17:09
366
原创 Fastjson反序列化漏洞基础
Fastjson反序列化漏洞基础FastJson是alibaba的一款开源JSON解析库,可用于将Java对象转换为其JSON表示形式,也可以用于将JSON字符串转换为等效的Java对象。0x0 简单使用pom.xml加入FastJson<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.24<
2021-07-30 16:13:31
201
原创 Fastjson 1.2.22-24 反序列化漏洞分析(1)
Fastjson 1.2.22-24 反序列化漏洞分析(1)前言FastJson是alibaba的一款开源JSON解析库,可用于将Java对象转换为其JSON表示形式,也可以用于将JSON字符串转换为等效的Java对象。影响版本:1.2.22-24官方通告:https://github.com/alibaba/fastjson/wiki/security_update_20170315补丁:https://github.com/alibaba/fastjson/commit/d075721cf39
2021-07-30 16:12:17
168
原创 ysoserial payloads/JRMPListener
payloads/JRMPListenerJRMPListener的攻击流程:1.生成payloads/JRMPListener发送给服务器,当服务器反序列化payloads/JRMPListener后,即会开启一个端口进行监听。2.使用exploit/JRMPClient模块发送payload,服务器就会把payload进行反序列化,从而完成进行攻击。直接通过ysoserial源码调试...
2021-07-28 10:53:00
54
原创 JNDI注入基础
一、简介JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API,命名服务将名称和对象联系起来,使得我们可以用名称访问对象。这些命名/目录服务提供者:RMI (JAVA远程方法调用)LDAP (轻量级目录访问协议)CORBA (公共对象请求代理体系结构)DNS (域名服务)二、利用方式在JNDI中有几种利用方式,这节就来讲一下RMI的利用方式1.RMI的利用方式客户端:pack
2021-07-28 10:51:26
236
原创 ysoserial payloads/JRMPClient
ysoserial payloads/JRMPClient环境:JDK8u102payloads/JRMPClient可以配合exploit/JRMPListener模块来使用1.在自己服务器上使用exploit/JRMPListener来开启监听2.把payloads/JRMPClient发送给对方服务器,对方服务器反序列化后会反向连接我们的服务器,进行连接之间我们服务器会发送payload给对方服务器进行反序列化执行命令。以下是执行ysoserial时候使用的命令:java -cp ysos
2021-07-27 15:48:45
526
原创 ysoserial exploit/JRMPClient
ysoserial exploit/JRMPClient上一篇文章讲到,当服务器反序列化payloads/JRMPListener,即会开启端口监听。再使用exploit/JRMPClient模块发送payload,服务器就会把payload进行反序列化,从而完成进行攻击。调用链分析设置payloads/JRMPListener参数,端口号为1299,debug模式启动payloads/JRMPListener模块。设置exploit/JRMPClient模块设置参数为127.0.0.1 1299
2021-07-27 15:48:11
342
原创 RMI源码调试
看RMI漏洞时候,对其漏洞原理并不是很理解,所以简单调试了下源码加强下漏洞理解由于要调试到RegistryImpl_Stub这种动态类,刚开始用的源码版本是JDK8u141,后来发现源码有些地方进行了修改,故此换回了JDK 7u80以下是源码版本JDK 7u80的源码创建注册中心createRegistryRegistry registry = LocateRegistry.createRegistry(1099);从上面这句代码入手,追溯下去,可以发现服务端创建了一个RegistryImpl
2021-07-24 16:11:03
277
原创 ysoserial CommonsColletions7分析
CC7也是一条比较通用的链了,不过对于其原理的话,其实还是挺复杂的。文章如有错误,敬请大佬们斧正CC7利用的是hashtable#readObject作为反序列化入口。AbstractMap的equals来触发的LazyMap的get方法POC分析这条链太过于复杂,无法想象大佬们是怎么样的思维挖掘出这条链的,所以只能跟着大佬的poc跟着进行调试了分析了public class CC7 { public static void main(String[] args) throws Except
2021-07-12 22:17:04
160
原创 ysoserial CommonsColletions6分析
CC6的话是一条比较通用的链,在JAVA7和8版本都可以使用,而触发点也是通过LazyMap的get方法。TiedMapEntry#hashCode在CC5中,通过的是TiedMapEntry的toString调用到的LazyMap的get方法,而CC6则是通过TiedMapEntry的hashCode方法此处hashCode会调用getValue方法,getValue就调用到了LazyMap的get方法接下来我们要找的就是哪里调用了TiedMapEntry#hashCodeHashMap#p
2021-07-10 18:45:48
152
1
原创 ysoserial CommonsColletions5分析
我们知道,AnnotationInvocationHandler类在JDK8u71版本以后,官方对readobject进行了改写。所以要挖掘出一条能替代的类BadAttributeValueExpException在CC5中除了有一个新的类BadAttributeValueExpException外,还有一个新的类TiedMapEntry,用来调用LazyMap的get方法TiedMapEntry在TiedMapEntry的getValue方法中调用了get方法而map成员变量则是由构造函数传入
2021-07-10 17:05:23
133
1
原创 ysoserial CommonsColletions4分析
其实CC4就是 CC3前半部分和CC2后半部分 拼接组成的,没有什么新的知识点。不过要注意的是,CC4和CC2一样需要在commons-collections-4.0版本使用,3.1-3.2.1版本不能去使用,原因是TransformingComparator类在3.1-3.2.1版本中还没有实现Serializable接口,无法被反序列化。JDK版本对于CC2和CC4来说,1.7和1.8都测试成功,下面我们就来快速构造一下payload构造payloadCC4用的是javassist创建攻击类,使
2021-07-10 17:04:50
150
1
原创 ysoserial CommonsColletions3分析(2)
ysoserial CommonsColletions3分析(2)上篇文章讲到CC3的TransformedMap链,这篇我们就来讲一下LazyMap链。其实LazyMap链还是使用的TemplatesImpl承载payload,InstantiateTransformer、TrAXFilter、ChainedTransformer这三个来构造调用链。和另一条链的区别:主要区别在于调用ChainedTransformer的transform方法是使用LazyMap的get方法触发。反序列化入口还是A
2021-07-08 00:02:59
80
原创 ysoserial CommonsColletions3分析(1)
ysoserial CommonsColletions3分析(1)CC3的利用链在JDK8u71版本以后是无法使用的,具体还是由于AnnotationInvocationHandler的readobject进行了改写。而CC3目前有两条主流的利用链,利用TransformedMap或者LazyMap。我们这篇文章先讲TransformedMap链TemplatesImpl在CC2中利用javassist创建了一个攻击类,使用TemplatesImpl类中的newTransformer方法触发这里写
2021-07-07 23:58:36
1303
原创 JAVA安全基础之代理模式(二)
JAVA安全基础之代理模式(二)上篇讲到静态代理模式,这时候我们发现,一个代理类只能为一个类服务,如果需要代理的类很多,那么就需要编写大量的代理类,比较繁琐。所以就有了动态代理动态代理动态代理的代理类,是在内存中构建代理对象,从而实现对目标对象的代理功能。在这里我们需要知道两个类:1.InvocationHandler(接口)、2.Proxy(类)来看下具体使用步骤1.(接口)创建P...
2021-06-26 17:01:00
80
原创 JAVA安全基础之代理模式(一)
JAVA安全基础之代理模式(一)代理模式是java的一种很常用的设计模式,理解代理模式,在我们进行java代码审计时候是非常有帮助的。静态代理代理,或者称为 Proxy ,简单理解就是事情我不用去做,由其他人来替我完成。在黄勇《架构探险》一书中,我觉得很有意思的一句相关介绍是这么说的:赚钱方面,我就是我老婆的代理;带小孩方面,我老婆就是我的代理;家务事方面,没有代理。代理类与被代理...
2021-06-24 18:09:00
117
原创 JAVA安全基础之反射
JAVA安全基础之反射在JAVA安全中,反射是一个经常使用的技术,所以熟悉使用反射是非常必要的。下面就简单的讲下JAVA的反射的用法什么是反射每个类都有对应的Class类对象,该Class类对象包含该类的属性、方法等信息,这个Class类对象就是这个类的反射。就像镜子一样,一个类照镜子后,镜子里的类对象就是一个Class对象。它描述了这个类的所有属性、方法等。作用可以在程序运行过程中...
2021-06-22 13:58:00
182
原创 ysoserial CommonsColletions2分析
ysoserial CommonsColletions2分析前言此文章是ysoserial中 commons-collections2 的分析文章,所需的知识包括java反射,javassist。在CC2中是用的 PriorityQueue#reaObject作为反序列化的入口,利用javassist创建了一个攻击类,使用TemplatesImpl类来承载他而CC1利用链在JDK1.8 ...
2021-06-22 01:03:00
319
原创 XXE从0到1
XXE从0到11. XXE概述XXE(XML External Entity Injection)即XML外部实体注入。漏洞是在对不安全的外部实体数据进行处理时引发的安全问题。下面我们主要介绍PHP语言下的XXE攻击.1.1 XML基础XML是可扩展的标记语言(eXtensible Markup Language),设计用来进行数据的传输和存储。1.1.1文档结构XML文档结构包括...
2021-06-09 22:44:00
209
凹丫丫新闻发布系统V4.7修改版asp+sqlserver带注入版.7z
2020-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人