Freemarker模板注入:CVE-2020-7477

一、漏洞名称:


FusionAuth存在Freemarker模板注入导致远程命令执行

二、漏洞编号:


CVE-2020-7477

三、漏洞描述:


在FusionAuth 1.11.0之前版本存在注入漏洞,经过身份验证的用户被允许编辑电子邮件模板或主题, 远程攻击者可利用该漏洞调用在系统上执行任意命令。

四、影响版本:


FusionAuth <= 1.11.0

五、漏洞分析


通过对直接编辑freemarker模板,调用freemarker.template.utility.Execute在服务器上执行任意命令

六、实验环境及准备:


使用docker环境进行一键部署,参考官方文档

docker-compose配置
  1. docker-compose.yml文件:将官方文档中的docker-compose.ymldocker-compose-override.yml文件中内容合并,改下fusionauth版本。
    在这里插入图片描述

  2. env文件内容使用官方文档中即可,将两个文件放到同一个目录下

docker-compose up -d自动部署环境

在这里插入图片描述

访问IP:9011,配置数据库和ElasticSearch连接

在这里插入图片描述
在这里插入图片描述

这边提交会报错,但是无所谓不影响复现漏洞
在这里插入图片描述

至此环境搭建完成
坑:这个版本的fusionauth每次重启就挂了,不知道什么原因,每次都是还原镜像再重新搭建一遍,真半天搭环境,复现两分钟。。。


七、复现步骤:


进入 setting -> email template,随便找一个进行编辑

在这里插入图片描述

抓包在emailTemplate.defaultHtmlTemplate参数中添加payload

在这里插入图片描述
这还是个自带回显的。。。

八、防御方案:


升级版本至1.11.0 及以后:单纯针对fusionauth的话,当然是升级系统,但是问题的根源在于freemarker的不安全使用

安全配置freemarker:
 - Freemarker 提供了三种模板引擎(TemplateClassResolver)的注册方式:
	1. UNRESTRICTED_RESOLVER:简单的调用ClassUtil.forName(String)2. SAFER_RESOLVER:和第一个类似,但禁止解析ObjectConstructor,Execute和freemarker.template.utility.JythonRuntime。
	3. ALLOWS_NOTHIND_RESOLVER:禁止解析任何类
- 默认不启用内置api(?api) 

在这里插入图片描述

参考链接:https://ackcent.com/in-depth-freemarker-template-injection/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值