0%

Hessian反序列化

什么是Hessian?

Hessian 是一种基于二进制协议的网络传输协议,用于通过网络在不同的系统之间进行远程方法调用(RPC)。它以其高效、简单和易于使用而受到广泛关注。

Hessian 协议使用二进制编码来序列化对象,并通过网络传输这些二进制数据。相比于文本协议(如XML或JSON),二进制协议可以显著减少传输的数据量,提高传输效率。

Hessian 协议支持多种编程语言,使得不同语言的应用程序可以方便地进行跨语言的远程方法调用。通常,开发人员只需定义接口和方法,然后在客户端和服务器端分别实现这些接口,Hessian 协议会负责将方法调用请求和响应进行序列化和反序列化,从而实现远程过程调用。

Hessian 在一些 Java 后端框架中应用广泛,例如 Dubbo、Spring 等。它具有轻量级、高性能、跨语言等特点,适用于构建分布式系统或者跨语言的微服务架构。

Read more »

SnakeYaml反序列化

什么是SnakeYaml?

snakeyaml包主要用来解析yaml格式的内容,yaml语言比普通的xml与properties等配置文件的可读性更高,像是Spring系列就支持yaml的配置文件,而SnakeYaml是一个完整的YAML1.1规范Processor,支持UTF-8/UTF-16,支持Java对象的序列化/反序列化,支持所有YAML定义的类型。

语法参考:https://www.yiibai.com/yaml

Read more »

Jackson反序列化漏洞

最开始的cve包含以下两个

CVE-2017-7275

CVE-2017-17485

由于CVE-2017-7275采用黑名单的方法修复程序,CVE-2017-17485是绕过该黑名单.

Read more »

红日靶场1

网络拓扑图

img

本次实验攻击机为kali:192.168.60.128,web服务器为win7(双网卡,192.168.52.143/192.168.60.139),域内主机win2008 R2:192.168.52.138,win2003:192.168.52.141

注意关闭win7的防火墙,启动phpstudy服务

Read more »

spring内存马

前置知识

Spring是IOC和AOP的容器框架,SpringMVC则是基于Spring功能的Web框架。

  • IOC容器:IOC容器负责实例化、定位、配置应用程序对象及建立对象依赖。Spring中用BeanFactory实现
  • Spring作为Java框架,核心组件有三个:Core、Context、Bean。其中context又叫IOC容器;Bean构成应用程序主干,Bean就是对象,由IOC容器统一管理;Core为处理对象间关系的方法

依赖注入:把有依赖关系的类放到容器中,解析出这些类的实例

spring对象间的依赖关系可以用配置文件的<bean>定义。context的顶级父类ApplicationContext继承了BeanFactory。

Read more »

Log4j2的JNDI注入漏洞(CVE-2021-44228)

什么是Log4j2?

Log4j2是一个Java日志组件,被各类Java框架广泛地使用。它的前身是Log4j,Log4j2重新构建和设计了框架,可以认为两者是完全独立的两个日志组件。本次漏洞影响范围为Log4j2最早期的版本2.0-beta9到2.15.0。

Read more »

Log4j 反序列化分析—CVE-2017-5645

什么是Log4j?

在应用程序中添加日志记录最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文件中,比较好的做法就是构造一个日志操作类来封装此类操作,而不是让一系列的打印语句充斥了代码的主体。
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
Log4j在工程中可以易用,方便等代替了 System.out 等打印语句,它是Java下最流行的日志输入工具,一些著名的开源项目,像spring、hibernate、struts都使用该工具作为日志输入工具,可以帮助调试(有时候debug是发挥不了作用的)和分析。

Read more »

Tomcat内存马

什么是内存马?

Webshell内存马,是在内存中写入恶意后门和木马并执行,达到远程控制Web服务器的一类内存马,其瞄准了企业的对外窗口:网站、应用。但传统的Webshell都是基于文件类型的,黑客可以利用上传工具或网站漏洞植入木马,区别在于Webshell内存马是无文件马,利用中间件的进程执行某些恶意代码,不会有文件落地,给检测带来巨大难度。

Read more »

fastjson高版本绕过

在之前学习的fastjson反序列化与JNDI注入中,只对1.2.24版本有效,这篇文章我们来学习一下高版本的一些绕过手法

Read more »

SPI机制的安全问题

什么是SPI?

Service Provider Interface,是JDK内置的⼀种服务提供发现机制,可以⽤来启动框架扩 展和替换组建。服务提供接⼝,不同⼚商可以针对同⼀个接⼝做出不同的实现。 当服务提供者提供了⼀种接⼝的实现之后,需要在classpath下的 META-INF/services/ ⽬录 下创建⼀个以服务接⼝命名的⽂件,⽂件内容就是这个接⼝的具体实现类。 当程序需要这个服务时,就可以通过查找这个jar包的 META-INF/services/ 中的配置⽂件, 配置⽂件中有接⼝的具体实现类名,可以根据这个类名进⾏加载实例化。

Read more »