Xstream反序列化远程代码执行漏洞深入分析

0. 前言

Xstream是java中一个使用比较广泛的XML序列化组件,本文以近期Xstream爆出的几个高危RCE漏洞为案例,对Xstream进行分析,同时对POC的构成原理进行讲解

 

1. Xstream简介

XStream是一个简单的基于Java库,Java对象序列化到XML,反之亦然(即:可以轻易的将Java对象和xml文档相互转换)。

Xstream具有以下优点

  • 使用方便 – XStream的API提供了一个高层次外观,以简化常用的用例。
  • 无需创建映射 – XStream的API提供了默认的映射大部分对象序列化。
  • 性能 – XStrea[......]

Read more

CVE-2021-24093 Windows图形组件远程执行代码漏洞分析

一、前言

Windows图形组件DWrite库是用于高质量文本呈现的用户模式动态库,DWrite库存在远程代码执行漏洞。目前已有POC,POC可以实现任意地址写任意内容。

基于此我们做了分析,分析后得知字体库文件中的”maxp”表内容存在错误数据时,DWrite库使用此数据计算字体所需内存,导致分配内存过小,程序读取字体库中的数据写入数组并越界写入 到另外一个数据结构中,后续将结构中数据作为指针操作其中内容,写入数据和指针都可控。通过分析补丁,补丁修补方案为:取出”maxp”表的另一字段再加4,比较之前畸形数据得到较大值,以此计算需要分配内存大小。

文章包含如下内容:[......]

Read more

CVE-2021-1648 windows10 splwow64权限提升分析

近日,作者分析了微软1月补丁日修复的一个漏洞CVE-2021-1648,这是一个可以在splwow64进程空间进行任意地址读写的漏洞。由于splwow64是一个普通权限的进程且splwow64在IE浏览器的白名单目录里,因此这个漏洞可以用于提权低权限的IE浏览器渲染引擎进程从而绕过IE浏览器的沙箱。这篇文章主要介绍一下splwow64的机制和CVE-2021-1648的成因。

环境:Windows10 20H2 2020-12补丁

splwow64机制

wow64是微软为了在64bit系统兼容运行32bit程序的一个组件,具体来说,在64bit程序调用32bit的CreateDC Win[......]

Read more

Java反序列化系列 ysoserial Jdk7u21

1.Jdk7U21漏洞简介

谈到java的反序列化,就绕不开一个经典的漏洞,在ysoserial 的payloads目录下 有一个jdk7u21,以往的反序列化Gadget都是需要借助第三方库才可以成功执行,但是jdk7u21的Gadget执行过程中所用到的所有类都存在在JDK中,JRE版本<=7u21都会存在此漏洞

2.Jdk7u21漏洞原理深入讲解

2.1漏洞执行流程

整体的恶意对象的封装整理成了脑图,如下图所示

1

这里用到了TemplatesImpl对象来封装我们的恶意代码,其封装和代码执行的流程在《Java 反序列化系列 ysoserial Hibernate[......]

Read more

Java反序列化系列 ysoserial Hibernate2

1.Hibernate简介

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的ORM框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JaveEE架构中取代CMP,完成数据持久化的重任。

2.RPC简介

RPC(Remote Proced[......]

Read more

Java反序列化系列 ysoserial Hibernate1

1.Hibernate简介

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JaveEE架构中取代CMP,完成数据持久化的重任。

2.Java动态字节码生成

通过分析Hiberna[......]

Read more

ysoserial Java 反序列化系列第一集 Groovy1

ysoserial简介

ysoserial是一款在Github开源的知名java 反序列化利用工具,里面集合了各种java反序列化payload;

由于其中部分payload使用到的低版本JDK中的类,所以建议自己私下分析学习时使用低版本JDK JDK版本建议在1.7u21以下。

此篇文章为java反序列化系列文章的第一篇,后续会以ysoserial这款工具为中心,挨个的去分析其中的反序列化payload和gadget,讲完该工具后会继续对工具中没有的java 反序列化漏洞进行讲解,例如 FastJson JackSon,WebLogic等等,并将这些漏洞的exp加入到ysose[......]

Read more

Apache Tomcat 从文件包含到RCE漏洞原理深入分析

漏洞简介

2020年02月20日,于CNVD公开的漏洞公告中发现Apache Tomcat文件包含漏洞(CVE-2020-1938)。

Apache Tomcat为Apache开源组织开发的用于处理HTTP服务的项目。Apache Tomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件。

本次漏洞是一个单独的文件包含漏洞,该漏洞依赖于Tomcat的AJP(定向包协议)协议。AJP协议自身存在一定的缺陷,导致存在可控参数,通过可控参数可以导致文件包含漏洞。AJP协议使用率约为7.8%,鉴于Tomcat作为中间件[......]

Read more

padding oracle原理深度解析

1、padding oracle 简介

首先我们先看一下padding oracle漏洞简单描述,以下是来自百度百科的解释

Padding的含义是“填充”,在解密时,如果算法发现解密后得到的结果,它的填充方式不符合规则,那么表示输入数据有问题,对于解密的类库来说,往往便会抛出一个异常,提示Padding不正确。Oracle在这里便是“提示”的意思,一开始看到漏洞名称中有oracle的时候我也被误导了,单实际上和甲骨文公司没有任何关系。

2、常见的加密模式

首先我们知道,加密的方法有很多种,分为两大类 对称加密和非对称加密,

对称加密又称单密钥加密,也就是字面意思,加密解密用的[......]

Read more

CVE-2019-19781 远程代码执行漏洞深入分析

环境搭建

虚拟机下载地址:https://www.citrix.com/downloads/citrix-gateway/

然后选择下载NSVPX-ESX-13.0-47.22_nc_64.zip这个文件,该文件是ovf,可以直接用vmware来倒入并打开

1

选择导入

2

先后配置 IP地址,子网掩码,的网关地址,然后选择4确认

3

默认用户名密码都是 nsroot

4

然后访问之前设置的IP地址,出现以下界面则环境搭建成功

5

漏洞复现

网上下载exp 下载地址 https://codeload.github.com/jas502n/[......]

Read more