FastJson历史漏洞研究(二)

前言

本文衔接上一篇文章《FastJson历史漏洞研究(一)》,继续探讨一下FastJson的历史漏洞。这次将要介绍的是Fastjson 1.2.47版本存在的漏洞成因以及其利用方式。

Fastjson 1.2.47漏洞分析

Fastjson 1.2.47版本漏洞与上篇文章中介绍的几处漏洞在原理上有着很大的不同。与Fastjson历史上存在的大多数漏洞不同的是,Fastjson 1.2.47版本的漏洞利用在AutoTypeSupport功能未开启时进行

首先来看一下公开的poc

从代码中可见,与以往利用不同的是,[......]

Read more

Fastjson历史漏洞研究(一)

本文衔接上一篇文章《Fastjson 1.2.24反序列化漏洞深度分析》,继续探讨一下FastJson的历史漏洞。

在《Fastjson 1.2.24反序列化漏洞深度分析》一文中,我们以Fastjson 1.2.24反序列化漏洞为基础,详细分析fastjson漏洞的一些细节问题。

Fastjson 1.2.24 版本的远程代码执行漏洞可谓是开辟了近几年来Fastjson漏洞的纪元。在Fastjson 1.2.24版本反序列化漏洞初次披露之后,官方针对这个漏洞进行了修补。然而这个修复方案很快就被发现存在绕过的风险。由于官方的修复方案或多或少都存在着一些问题,随之而来的是一次又一次的绕[......]

Read more

CVE-2020-0796 LPE 深度分析

CVE-2020-0796是Windows操作系统SMB协议的一个整型溢出漏洞,该漏洞功能很强大,可以导致任意地址读写,成功利用该漏洞可以在特定版本Windows系统上实现无交互RCE。本文主要针对CVE-2020-0796导致本地任意地址写进行分析。

 漏洞分析

​ 漏洞出现在srv2!Srv2DecompressData里,逆向修改后的函数如下

“`
pBuffer = SrvNetAllocateBuffer((unsigned size_t)(Header->OriginalCompressedSegmentSize Header->Offset), 0);[......]

Read more

Struts2 S2-059 漏洞分析

一、前言

2020年8月13日,Apache官方发布了一则公告,该公告称Apache Struts2使用某些标签时,会对标签属性值进行二次表达式解析,当标签属性值使用了%{skillName}并且skillName的值用户可以控制,就会造成OGNL表达式执行。

二、漏洞复现

我这里选用的测试环境 Tomcat 7.0.72Java 1.8.0_181Struts 2.2.1,受影响的标签直接使用官网公告给出的例子

测试漏洞URL

http://localhost:8088/S2-059.action?payl[......]

Read more

WebSphere CVE-2020-4450 反序列化远程代码执行漏洞深度分析

WebSphere简介

WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的软件。

WebSphere Application Server 是该设施的基础,其他所有产品都在它之上运行。WebSphere Process Server 基于 WebSphere Application Server 和 WebSphere Enterprise Service Bus,它为面向服务的体系结构 (SOA) 的模块化[......]

Read more

Fastjson 1.2.24反序列化漏洞深度分析

前言

FastJson是alibaba的一款开源JSON解析库,可用于将Java对象转换为其JSON表示形式,也可以用于将JSON字符串转换为等效的Java对象。近几年来fastjson漏洞层出不穷,本文将会谈谈近几年来fastjson
RCE漏洞的源头:17年fastjson爆出的1.2.24反序列化漏洞。以这个漏洞为基础,详细分析fastjson漏洞的一些细节问题。

关于Fastjson 1.2.24反序列化漏洞,自从17年以来已经有很多人分析过了,一些基础内容本文就不再陈述了。此次漏洞简单来说,就是Fastjson通过parseObject/parse将传入的字符串反序列化为J[......]

Read more

Apache dubbo (CVE-2020-1948) 反序列化远程代码执行漏洞及其补丁绕过深度分析

Apache Dubbo简介

 

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册) 其核心部分包含:

  • 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
  • [......]

Read more

使用无字母的JavaScript语句绕过XSS限制

一、前言

在一次XSS测试中,往可控的参数中输入XSS Payload,发现目标服务把所有字母都转成了大写,假如我输入alert(1),会被转成ALERT(1),除此之外并没有其他限制,这时我了解到JavaScript中可以执行无字母的语句,从而可以绕过这种限制来执行XSS Payload

二、JS基础

先执行两段JS代码看下

image-20200610213701179

两段js代码都输出了字符串”nb”,下面来分析下原因.

JS运算符的优先级

下面的表将所有运算符按照优先级的不同从高(20)到低(1)排列。

优先级
运算类型
关[......]

Read more

Java 8u20反序列化漏洞分析

一、前言

JDK7u21中反序列化漏洞修补方式是在AnnotationInvocationHandler类对type属性做了校验,原来的payload就会执行失败,在8u20中使用BeanContextSupport类对这个修补方式进行了绕过。

二、Java序列化过程及数据分析

在8u20的POC中需要直接操作序列化文件结构,需要对Java序列化数据写入过程、数据结构和数据格式有所了解。

先看一段代码

运行A类main方法会生成a.ser文件,[......]

Read more

JAVA JNDI注入知识详解

一、前言

在漏洞挖掘或利用的时候经常会遇见JNDI,本文会讲述什么是JNDI、JNDI中RMI的利用、LDAP的利用、JDK 8u191之后的利用方式。

二、JNDI简介

JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API,命名服务将名称和对象联系起来,使得我们可以用名称访问对象。

这些命名/目录服务提供者:

  • RMI (JAVA远程方法调用)
  • LDAP (轻量级目录访问协议)
  • CORBA (公共对象请求代理体系结构)
  • DNS (域名服务)

JND[......]

Read more