Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
drupal-htmx-attr — Drupal 11.4.8 - 高危 - 远程 - XSS - AttributeXss 仍允许 HTMX 属性 | Kitploit
工具/GitHubGitHub/abraxas/drupal-htmx-attr
漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试实验室与实践
GitHubabraxas/drupal-htmx-attr

drupal-htmx-attr

Drupal 11.4.8 - 高危 - 远程 - XSS - AttributeXss 仍允许 HTMX 属性

查看仓库
4天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Abraxas Labs - drupal-htmx-attr

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  drupal-htmx-attr

drupal-htmx-attr

类别: 存储型 XSS 可达性: 远程

Drupal 核心 11.4.8 (61044508) - Drupal

SA-CORE-2026-011 在 Xss::attributes() 中关闭了 HTMX 属性。链接和菜单属性会经过 AttributeXss::sanitizeAttributes,而该跳过列表仍然只丢弃 style 和 on*。

能够设置 Link 字段(或菜单链接)的内容编辑者可以存储 hx-on-click 或 data-hx-on-click。Standard 加 BigPipe 会加载 core/htmx。当管理员或任何其他查看者打开该节点并点击链接时,HTMX 会在站点源中执行存储的 JS。

ID暂无 CVE
类别存储型 XSS(HTMX 事件属性)
可达性远程(已认证的 Link 字段 / 菜单写入者;受害者查看并点击)
CWECWE-79
CVSS高危:8.7 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
产品Drupal 核心
受影响版本11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
认证能够写入 Link 字段(或菜单链接)的已认证用户。受害者查看页面并点击。
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1

攻击者能做什么

写入者:能够设置链接 options.attributes(Link 字段、菜单链接、JSON:API)的内容编辑者。受害者:任何页面加载 HTMX 的人(Standard + BigPipe 会加载 core/htmx),包括点击链接的站点管理员。

权限方法 / 路径类型实验验证或推断
在链接上持久化 HTMX 事件属性POST /jsonapi/node/article,带有 field_link.options.attributes.hx-on-click 和 data-hx-on-click存储字段的完整性实验验证。JSON:API 返回 201,存储的属性仍包含 hx-on-click
在节点 <a> 上输出这些属性LinkFormatter -> AttributeXss::sanitizeAttributesHTML 的完整性实验验证。GET /node/1 的 HTML 包含 hx-on-click 和标记 window['DRUPAL-HTMX-ATTR-WITNESS']=1
在受害者点击时于其源中运行该 JSHTMX 绑定 hx-on-*受害者会话的完整性根据 HTMX 及页面加载 core/htmx 推断。实验未驱动浏览器点击
以查看者身份操作(会话 cookie、管理员 UI 点击)同一存储型 XSS受害者会话的完整性推断。实验止于属性保留在 HTML 中
否定项:Xss::filterXss::filter('<a ... hx-on-click=...>')已关闭实验验证已关闭。xss_keeps_hx=False
未认证写入链接无会话的 JSON:API已关闭实验先以 uid 1 登录。无账户的陌生人无法设置该字段
PHP RCE / LPE不适用已关闭此遗留问题是浏览器 JS,而非服务器上的 PHP

同一版本遗留问题:Move Block sibling markup。

我是如何发现的

在 SA-CORE-2026-011 之后,我锁定了 drupal/drupal 11.4.8。进行了五次搜寻:XSS/HTMX、文件/MIME/oEmbed、JSON:API/unserialize/SQLi、认证/CSRF/Host、REST/media/Views。JSON:API 访问、EntityQuery IN 键(SA-004)、序列化字段 POI(SA-005)以及 rebuild.php Host(SA-007)仍保持已修补状态。HTMX 跳过列表仅落在 Xss.php 中。

$skip = (
  in_array($attribute_name, ['style', 'srcdoc']) ||
  str_starts_with($attribute_name, 'on') ||
  str_starts_with($attribute_name, 'data-hx') ||
  str_starts_with($attribute_name, 'hx') ||
  str_starts_with($attribute_name, '-') ||
  strlen($attribute_name) > 96
);

AttributeXss.php 遗留问题:

$skip = (
  $attribute_name == 'style' ||
  str_starts_with($attribute_name, 'on') ||
  str_starts_with($attribute_name, '-') ||
  strlen($attribute_name) > 96
);

调用方包括 LinkFormatter.php 和 MenuLinkContent::getUrlObject()。

已记录的弯路:将 Xss::filter 视为遗留问题(它是控制项);未认证 JSON:API 写入;PHP RCE;反向 shell。都是表演。判定依据是属性保留在节点 HTML 上,加上 core/htmx 已加载。

实验环境

python3 drupal-htmx-attr-Abraxas-Labs.py

或

cd lab
./run.sh

目标仅限 http://127.0.0.1:19480。实时 drupal:11.4.8-apache,Standard 配置文件,为实验启用了 JSON:API 写入。Compose 项目 drupal-htmx-attr。

SUCCESS drupal-htmx-attr how=live write=jsonapi nid=1 hx-on-click=kept jsonapi-stored=1 xss-filter=stripped htmx=loaded marker=1 version=11.4.8 DRUPAL-HTMX-ATTR-WITNESS

修复方案

将 hx / data-hx / srcdoc 拒绝列表复制到 AttributeXss 中。如类文档块所述,将其合并到 Xss 中。

参考资料

  • github.com/drupal/drupal 标签 11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
  • AttributeXss.php · Xss.php
  • 附近已修补:SA-CORE-2026-011
  • 同一版本:drupal-move-block-markup
  • CWE-79

许可证

GNU Affero GPL v3.0。参见 LICENSE。仅限回环实验环境。无担保。

下载工具