【$25000】利用Zendesk Nday获取漏洞赏金

更多大厂面试经验的视频分享看主页和专栏

目录:

发现契机

  漏洞影响

  关键点

开始猎捕漏洞

  测试门户

  发现契机

  漏洞影响

  关键点

  开始猎捕漏洞

 测试门户

在这篇博客中,我将分享如何在 Zendesk 客户的默认配置中发现模板注入漏洞。

发现契机

有一天,我看到了 Rojan Rijal dai 分享的一篇文章,他演示了如何在 Zendesk 和 Salesforce 等支持门户中利用动态占位符来窃取敏感数据。

在这篇博客中,他解释了如何使用 Zendesk 的占位符/模板创建工单。当工单被创建时,这些模板会被渲染,从而实现数据外泄。

Zendesk 提供了一系列占位符模板,例如:

{``{ticket.ccs[0].name}}

{``{ticket.ccs[0].phone}}{``{ticket.ccs[0].custom_fields}}{``{ticket.ccs[0].notes}}


漏洞影响

攻击者可以创建包含恶意模板的支持工单,并将受害者用户添加为 CC(抄送)对象。

当模板被渲染时,攻击者可以窃取 CC 用户的电话、姓名、内部备注、定制字段等信息。

例如: 窃取 CC 用户的定制字段和用户备注可能使攻击者访问内部数据,包括用户地址、账单信息,甚至个人身份信息(PII)。

这是一个极具吸引力的攻击向量,我也想在私人漏洞奖励项目中测试它。


关键点

Rojan dai 在文章中强调了一个关键点:

此漏洞只能针对自定义支持门户进行利用。

例如:https://support.gitlab.com/hc/en-us 是一个默认的 Zendesk 门户。

默认的 Zendesk 门户使用 Zendesk 提供的表单 https://support.gitlab.com/hc/en-us/requests/new 来创建工单。

https://support.github.com是一个后台使用 Zendesk 的自定义支持门户。

自定义门户是带有自定义表单的网站,其表单数据通过 API 传递到 Zendesk。因此,如果程序使用 /v2/tickets.json API 在后台创建工单,注入便有可能。


开始猎捕漏洞

在尝试在我的大多数项目中测试此漏洞时,我很快意识到,识别这些"自定义表单"是一个挑战,需要大量手动检查。

相反,识别默认的 Zendesk 门户却仅需几分钟。

我所需要做的就是收集目标项目的子域,然后通过 CNAME 解析,我找到了大量默认 Zendesk 门户,例如 target.zendesk.com

由于原文章中对默认门户的攻击较少探索,我决定从这条路径进行测试。


测试门户

以下是一个普通 Zendesk 门户(默认配置)的示例,其所需字段如下:

复制代码
email, subject and description

我在主题/描述中提交了带有恶意模板的表单。

在工单创建后,尽管用户输入可以被反映出来,但由于存在数据清理(sanitization),无法实现注入攻击。

Zendesk正在对主题内容进行清理。

那么,如果我创建一个没有主题的工单会怎样?仅在描述正文中包含有效负载(payload)。

主题字段不能为空!这感觉像是刚开始就走到了死胡同。

然而,当我继续检查一些默认的Zendesk门户时,我注意到了一些有趣的现象。其中一个项目的Zendesk门户在创建工单时不需要主题字段

这次我只需要在描述中插入一个恶意模板并提交表单,模板成功被渲染了。

因此,尽管Zendesk对原始主题字段(subject field) 进行了清理,但如果创建的工单没有主题,Zendesk会使用描述字段(description body)作为主题。而这种描述 <-> 主题的引用操作缺乏必要的清理。

我们现在有了一个Zendesk中的占位符注入漏洞。

但有一个小问题,这种漏洞仅对那些Zendesk表单中没有主题字段的项目有效,而这样的项目并不多。

鉴于这个漏洞的奇妙之处,我必须绕过这个"主题"字段的强制性要求,并能够创建没有主题但在描述中包含有效载荷的工单。

基于电子邮件的工单创建

除了通过API或表单创建工单之外,Zendesk还支持基于电子邮件的工单创建。

我们可以发送一封电子邮件到support@target.zendesk.com,电子邮件的内容将被处理为一份支持工单。

我们还可以在电子邮件中添加其他用户为工单的抄送(CC)。

由于我可以在发送电子邮件时控制主题字段和正文字段,因此我向 support@target.zendesk.com 发送了一封没有主题的电子邮件,在电子邮件正文中包含了恶意模板,并将受害者的电子邮件地址添加为抄送(CC)。

我们收到的邮件回复是什么?

一个模板注入漏洞,使我能够通过将受害者信息(如姓名、电话、角色、自定义字段等)添加为抄送(CC)来泄露信息。

报告

该漏洞的影响范围取决于具体的程序。

一些程序已经禁用了Zendesk的电子邮件抄送功能,因此无法提取信息。

而一些程序则使用了静态主题行,由于没有处理攻击者的输入,因此根本无法进行注入。

Zendesk 还具有模板抑制/激活规则。

因此,程序确实采取了一些措施,可以对抗这种攻击。

厂商回应

该漏洞的处理被视为低到高影响的漏洞,具体取决于我能够泄露的数据信息。

几乎所有厂商都对这个漏洞都非常积极,并采取了迅速的措施来解决它。

与此同时,一些厂商要求我将此漏洞报告给Zendesk,并且也从他们那边进行了沟通。该漏洞随后报告给了Zendesk。被评为"中等------业务逻辑漏洞"。

在这篇博客中,我将分享如何在 Zendesk 客户的默认配置中发现模板注入漏洞。

更多大厂面试经验的视频分享看主页和专栏

申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关

相关推荐
云老大TG:@yunlaoda36020 小时前
开通华为云国际站代理商的UCS服务需要哪些资质?
大数据·数据库·华为云·云计算
总有刁民想爱朕ha20 小时前
Windows Server 2019部署MySQL 8教程
数据库·windows·mysql
纪伊路上盛名在20 小时前
记1次BioPython Entrez模块Elink的debug
前端·数据库·python·debug·工具开发
程序员水自流20 小时前
MySQL数据库自带系统数据库功能介绍
java·数据库·mysql·oracle
旧梦吟20 小时前
脚本网页 三人四字棋
前端·数据库·算法·css3·html5
乾元20 小时前
基于时序数据的异常预测——短期容量与拥塞的提前感知
运维·开发语言·网络·人工智能·python·自动化·运维开发
梓仁沐白20 小时前
操作系统:进程通信和死锁
linux·服务器·网络
小光学长20 小时前
基于ssm的考研复习平台w0ws1848(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
-大头.20 小时前
数据库高可用架构终极指南
数据库·架构
Elastic 中国社区官方博客20 小时前
Elasticsearch:构建一个 AI 驱动的电子邮件钓鱼检测
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索