解题过程
1. 流量初步分析
使用 Wireshark 或 tshark 分析流量包。发现大量的 HTTP 流量指向 172.23.3.25:8848。该端口通常为 Nacos 服务。
2. 识别漏洞利用
分析流量中的 HTTP 请求,发现大量针对 /nacos/v1/cs/ops/data/removal 的 POST 请求,其 Body 部分包含 Derby 数据库的 SQL 语句。这明显是 Nacos Derby RCE (CVE-2023-27350) 的漏洞利用特征。
攻击者通过以下步骤实现 RCE:
- 利用
SYSCS_UTIL.SYSCS_EXPORT_QUERY_LOBS_TO_EXTFILE 将十六进制编码的 JAR 文件导出到服务器临时目录(如 /tmp/BhZdmEXc.jar)。
- 利用
sqlj.install_jar 安装该 JAR 包。
- 利用
CREATE FUNCTION 创建一个外部 Java 函数(如 S_EXAMPLE_BhZdmEXc),映射到 JAR 包中的执行逻辑。
- 利用
SELECT ... S_EXAMPLE_xxxx('command') 执行系统命令。
3. 寻找 FLAG
通过过滤包含 cat 或 flag 的 HTTP 请求:
tshark -r capture.pcap -Y 'http.request.uri contains "cat"'
发现攻击者执行了以下命令:
GET /nacos/v1/cs/ops/derby?sql=SELECT+...+S_EXAMPLE_ARlxjnKB('cat+/flag')+...
查看该请求对应的 HTTP 响应(TCP Stream 250):
{
"code": 200,
"message": null,
"data": [{ "B": 0, "A": "flag{5913ceb0-1eb4-4f0f-b0c9-f4b5b0fc0ab7}" }]
}
最终 Flag
flag{5913ceb0-1eb4-4f0f-b0c9-f4b5b0fc0ab7}
知识点总结
- Nacos Derby RCE (CVE-2023-27350): Nacos 在使用内置 Derby 数据库时,攻击者可以通过特定的接口注入 SQL 语句并实现代码执行。
- 流量分析: 识别 Web 漏洞利用链,通过 HTTP 流追踪命令执行的结果。