当前位置: 首页 > news >正文

JavaSec-SSTI - 模板引擎注入

简介

SSTI(Server Side Template Injection):模板引擎是一种通过将模板中的占位符替换为实际数据来动态生成内容的工具,如HTML页面、邮件等。它简化了视图层的设计,但如果未对用户输入进行有效校验,可能导致安全风险如任意代码执行 Java中常用的模板引擎有Freemarker、Velocity、Thymeleaf等,在这里以Thymeleaf引擎为例

1.漏洞场景:thymeleaf模版注入

攻击者可以操控return中的值,就有可能造成模板注入漏洞,当方法返回为void时,thymeleaf会以URL路由为视图名称,调用模板视图去解析

缺陷代码

public String vul1(@RequestParam String para, Model model) {// 用户输入直接拼接到模板路径,可能导致SSTI(服务器端模板注入)漏洞return "/vul/ssti/" + para;
}public void vul2(@PathVariable String path) {log.info("SSTI注入:"+path);
}// 缺陷组件版本参考
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>
<!--        <version>2.7.14</version>--><version>2.4.1</version><relativePath/>
</parent><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId><version>2.4.1</version>
</dependency>

2.安全场景:thymeleaf模版注入

安全编码规范:1、避免用户输入直接作为模板名称或路径2、对所有动态内容进行严格校验和转义,包括模板变量3、选择支持自动转义的安全模板引擎(如Thymeleaf的th:text)4、使用白名单限制动态渲染的模板,控制可访问的模板范围

public String safe1(String para, Model model) {List<String> white_list = new ArrayList<>(Arrays.asList("vul", "ssti"));if (white_list.contains(para)){return "vul/ssti" + para;} else{return "common/401";}
}
@GetMapping("/safe2/{path}")
public void safe2(@PathVariable String path, HttpServletResponse response) {log.info("SSTI注入:"+path);
}

相关文章:

  • 【Linux网络篇】:从HTTP到HTTPS协议---加密原理升级与安全机制的全面解析
  • vscode 离线安装第三方库跳转库
  • Spark 写文件
  • 记一个判决书查询API接口的开发文档
  • 软件测试全攻略:Postman工具的使用
  • 关于easyexcel动态下拉选问题处理
  • exp1_code
  • BT Panel密码修改
  • Python Excel 文件处理:openpyxl 与 pandas 库完全指南
  • (LeetCode 每日一题) 1061. 按字典序排列最小的等效字符串 (并查集)
  • 金融系统功能测试:科技赋能,安全护航
  • 【C++ Qt】窗口(Qt窗口框架、菜单栏QMenuBar)
  • bug 记录 - 使用 el-dialog 的 before-close 的坑
  • 2025Go面试八股(含100道答案)
  • 【Spark征服之路-2.2-安装部署Spark(二)】
  • 41道Django高频题整理(附答案背诵版)
  • 泊松融合的介绍和OpenCV教程
  • Kaggle-Predicting Optimal Fertilizers-(多分类+xgboost)
  • 数学运算在 OpenCV 中的核心作用与视觉效果演示
  • 【个人笔记】数据库原理(西电)
  • 网站销售怎么做的/北京计算机培训机构哪个最好
  • 区政府网站自查整改和制度建设/网络营销课程速成班
  • 国外 网站有做验证码吗/微信推广广告在哪里做
  • 网订率推广技巧/windows优化大师和360哪个好
  • 常见的简单的app开发/成都百度提升优化
  • 旅游网站开发功能/网站制作公司网站