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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/drkim-dev/cve-2026-30862
权限提升漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试红队
GitHubdrkim-dev/cve-2026-30862

CVE-2026-30862

概念验证,演示 Appsmith 表格组件中的存储型 XSS,可导致垂直权限提升,并通过 XSS 到 CSRF 攻击实现完全接管管理员账户。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-30862 PoC - Appsmith 中的权限提升漏洞

Appsmith 中通过存储型 XSS 实现权限提升的概念验证

披露信息: 最初由我通过 GHSA-5hw4-whxv-6794 报告

⚠️ 仅限授权渗透测试/研究使用。

漏洞信息

字段值
CVE IDCVE-2026-30862
严重性🔴 严重
CVSS 评分9.1
CVSS 向量[CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H]
CWECWE-79、CWE-269、CWE-352
受影响产品Appsmith ≤ 1.95
已修补版本1.96
安全公告GHSA-5hw4-whxv-6794

CVE-2026-30862:Appsmith v1.95 中的严重存储型 XSS 与权限提升漏洞

摘要

Table Widget(TableWidgetV2)中存在一个严重存储型 XSS 漏洞。根本原因在于 React 组件渲染管道中缺乏 HTML 净化处理,导致恶意属性被直接插入到 DOM 中。通过利用"邀请用户"功能,拥有普通用户账户([email protected])的攻击者可以强制系统管理员执行高权限 API 调用(/api/v1/admin/env),从而实现完全的管理员账户接管。


详细信息

1. 根本原因:缺少输出净化处理点 该漏洞存在于 Table Widget 的渲染引擎中

  • 文件: app/client/src/widgets/TableWidgetV2/component/cellComponents/BasicCell.tsx

  • 当 columnType 设置为 URL 或 Plain Text 时,BasicCell 组件未能对数据进行净化处理。它直接返回用户提供的原始值,并将其作为 React 子元素直接渲染,浏览器会将其解释为可执行的 HTML。

存在漏洞的代码片段(第 132-143 行和第 172-173 行):

root@kitploit:~
const contentToRender = useMemo(() => {
  switch (columnType) {
    case ColumnTypes.URL:
      // 将 'url' 直接插入 href,未进行净化处理
      return <a href={url} target="_blank">{value}</a>;
    default:
      return value; // 第 141 行:返回原始值
  }
}, [columnType, url, value]);

// 第 173 行:未净化内容被注入 DOM 的最终处理点
<Content ref={contentRef}>{contentToRender}</Content>

2. 攻击向量:通过社会工程学实现 XSS 到 CSRF(邀请功能) 尽管 SESSION cookie 受 HttpOnly 保护,但 XSRF-TOKEN 可以通过 document.cookie 访问。由于 Appsmith 允许任何用户邀请他人加入其应用,攻击者可以利用此功能作为投递机制,在管理员的活动会话中执行跨权限请求伪造(CPRF)。


PoC(概念验证)

步骤 1:XSS 漏洞验证

  1. 使用普通用户账户登录:[email protected]。

  2. 创建一个新应用并添加一个 Table Widget。

  3. 在 Table Data 属性中,注入以下内容:

root@kitploit:~
[{ "id": 1, "payload": "" }]
  1. 观察 alert() 执行,确认净化处理被绕过。

-- 步骤 2:武器化(完全管理员接管)

  1. 以 [email protected] 身份,更新 Table Data,使用以下旨在修改管理环境的载荷:
root@kitploit:~
[
  {
    "id": 1,
    "Status": "System Update Required",
    "payload": "alert('Admin Privileges Granted to [email protected]'));\">"
  }
]
  1. 使用 "Share" 功能邀请系统管理员([email protected])加入该应用。这将强制管理员在打开邀请时查看恶意表格。

  2. 管理员启动应用后,脚本在后台执行。它会读取管理员的 XSRF-TOKEN 并发送 PUT 请求,将 [email protected] 添加到管理员白名单中。

  3. 结果: 再次以 [email protected] 身份登录。您现在将拥有 Admin Settings 和所有实例配置的完全访问权限。


影响

  • 漏洞类型: 存储型 XSS / 垂直权限提升。

  • 严重性:9.1(严重)| CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H

  • 风险: Appsmith 实例被完全攻陷。攻击者能够访问敏感的环境变量、数据库凭据,并能够修改实例中的任何应用。


建议修复方案

  1. 净化处理点: 在 BasicCell.tsx 及相关组件中,使用 DOMPurify.sanitize() 包装所有动态输出。

  2. 强化 CSP: 实施严格的 connect-src 策略,防止 XSS 载荷对管理端点进行未经授权的 API 调用。


https://github.com/user-attachments/assets/206a10e4-1619-4887-a552-99761baa0a29

下载工具