Nixon-H/CVE-2025-68434-OSPOS-CSRF

GitHub: Nixon-H/CVE-2025-68434-OSPOS-CSRF

CVE-2025-68434 的概念验证与技术分析项目,揭示了 OpenSourcePOS 因 CSRF 防护被禁用而可被远程攻击者创建后门管理员账户并完全接管系统的严重漏洞。

Stars: 3 | Forks: 1

# CVE-2025-68434:OpenSourcePOS 中的 CSRF 未经授权创建管理员漏洞 | 元数据 | 详情 | | --- | --- | | **CVE ID** | **[CVE-2025-68434](https://cve.mitre.org/cgi-bin/cvename.cgi%3Fname%3DCVE-2025-68434)** | | **严重程度** | **严重 (8.8)** `CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H` | | **漏洞类型** | 跨站请求伪造 (CWE-352) | | **受影响版本** | OpenSourcePOS v3.4.0, v3.4.1 | | **修复版本** | **v3.4.2** | | **易受攻击的组件** | `app/Config/Filters.php` (全局安全过滤器) | | **报告者** | [Aditya Singh (Nixon-H)](https://github.com/Nixon-H) | ## 📝 执行摘要 在 OpenSourcePOS 的核心安全配置中发现了一个**严重的跨站请求伪造 (CSRF)** 漏洞。由于一个从未被解决的临时开发“TODO”,应用程序的全局 CSRF 保护机制在 `app/Config/Filters.php` 文件中被明确禁用。 这种错误配置允许应用程序在未验证有效防伪造 token 的情况下接受会改变状态的 HTTP 请求 (POST)。未经身份验证的远程攻击者可以利用此漏洞,诱骗已登录的管理员访问恶意页面。然后,攻击者的页面将静默地迫使受害者的浏览器执行管理操作;具体来说,就是创建一个拥有完全权限的全新“后门”管理员账户;从而导致系统被完全接管。 ## 🕵️‍♂️ 技术根本原因分析 ### 易受攻击的配置 该漏洞位于**全局过滤器**配置 (`app/Config/Filters.php`) 中。在 CodeIgniter 4 中,`$globals` 数组决定了哪些过滤器会在*每个*请求上运行。 在受影响的版本中,`csrf` 过滤器在 `before` 执行列表中被注释掉了,从而有效地禁用了整个应用程序的 CSRF 保护。 **易受攻击的代码 (app/Config/Filters.php):** ``` public array $globals = [ 'before' => [ 'honeypot', // 'csrf' => ['except' => 'login'], // TODO: Temporarily disable CSRF until we get everything sorted 'invalidchars', ], // ... ]; ``` 由于这一行被注释掉了,负责检查 `csrf_token_name` 的中间件从未执行。应用程序接受来自任何来源的任何 POST 请求,仅依赖于 session cookie (`ospos_session`) 进行身份验证。 ## 💥 概念验证 (PoC) ### 攻击场景 1. **攻击者:** 在外部服务器上托管 `csrf_exploit.html` 文件。 2. **受害者:** 已登录的 OpenSourcePOS 管理员(活动 session)。 3. **触发:** 受害者被诱骗点击了指向攻击者站点的链接。 4. **执行:** 恶意页面加载,生成一个随机的唯一用户名(以避免冲突),并自动向受害者的本地 OpenSourcePOS 实例提交一个隐藏表单。 5. **结果:** 瞬间创建了一个新的管理员账户(例如,`valid_12345`)。 ### 利用代码 (`POC/csrf_exploit.html`) 这是用于创建具有完全权限的恶意管理员的精确 payload: ``` OSPOS CSRF Exploit (Verified)

OSPOS Privilege Escalation Exploit

Creating Administrator account...

Initializing payload...

``` ### 📷 媒体证明 *(图片和利用文件位于 `POC/` 目录中)* **截图 1:[利用执行过程](https://github.com/Nixon-H/OpenSourcePOS-CSRF-Account-Takeover/blob/main/POC/Exploit_Execution.png)** **截图 2:[创建的恶意账户](https://github.com/Nixon-H/OpenSourcePOS-CSRF-Account-Takeover/blob/main/POC/Rogue_Account_Created.png)** **🎥 视频演示:** [点击观看 / 下载 PoC 视频](https://github.com/Nixon-H/OpenSourcePOS-CSRF-Account-Takeover/blob/main/POC/CSRF_ADMIN_TAKEOVER_POC.mkv) ## ⚠️ 影响场景 ### 1. 影子管理员持久化(“后门”) 创建的账户不仅仅是一个临时的 session;它是一个永久的数据库条目。 * **影响:** 即使真正的管理员注销了,攻击者也会无限期地保留访问权限。 * **隐蔽性:** 攻击者可以将用户命名为“System_Updater”或“Support_Account”,以混入合法用户中,使他们能够在几个月内不被发现地窃取数据。 ### 2. 供应链破坏(与 XSS 链式结合) 使用 `grant_config` 权限,攻击者可以修改**商店配置**。 * **攻击:** 攻击者利用 CSRF 将恶意的 JavaScript payload 注入到“退货政策”字段中(利用 **CVE-2025-68147**)。 * **影响:** 这会将 POS 系统变成水坑。每个查看收据的员工或客户都会感染恶意软件或其 session 被劫持。 ### 3. 欺诈与拒绝服务 * **欺诈:** 攻击者创建价值数千美元的“礼品卡”,并将代码发送给自己。 * **拒绝服务:** 攻击者触发大规模删除操作 (`/items/delete`),清除整个产品库存数据库并使业务运营停滞。 ## 🛡️ 修复方案 该漏洞已在 **OpenSourcePOS v3.4.2** 中修复。该修复需要进行多步骤的架构更改,以处理应用程序中大量使用 AJAX 的销售界面中的竞态条件。 ### 1. 重新启用过滤器 在 `app/Config/Filters.php` 中,取消注释了全局 CSRF 过滤器。 ``` 'before' => [ 'honeypot', - // 'csrf' => ['except' => 'login'], // TODO: Temporarily disable CSRF until we get everything sorted + 'csrf' => ['except' => 'login'], 'invalidchars', ], ``` ### 2. 更改安全存储策略 在 `app/Config/Security.php` 中,开发人员从基于 cookie 的 token 切换到了基于 session 的 token,并禁用了 token 重新生成,以防止出现与并行 AJAX 请求(例如,在 Sales 模块中)相关的问题。 ``` - public string $csrfProtection = 'cookie'; + public string $csrfProtection = 'session'; - public bool $regenerate = true; + public bool $regenerate = false; ``` ### 3. 前端 Token 处理 更新了 `app/Views/partial/header_js.php` 文件,以直接从服务器注入 token 哈希,而不是从客户端 cookie 中读取它,从而改善了安全状况。 ``` - var csrf_token = function() { - return Cookies.get(cookie_name); - }; + var csrf_token = function() { + return ""; + }; ``` ## 📅 披露时间表 * **2025-12-12:** **Aditya Singh (Nixon-H)** 在手动安全审计期间发现了该漏洞。 * **2025-12-13:** 通过 GitHub/电子邮件向维护者 (**Jeroen Peelaerts**) 发送了负责任的披露报告。 * **2025-12-14:** 维护者确认了该漏洞。 * **2025-12-16:** 开发了补丁(提交 `d575c8d`)并由研究人员进行了验证。 * **2025-12-19:** 在版本 **3.4.2** 中发布了补丁。 * **2025-12-19:** 通过 GitHub 安全公告进行公开披露。 ### 🔗 参考 * **公告:** [GHSA-wjm4-hfwg-5w5r](https://github.com/opensourcepos/opensourcepos/security/advisories/GHSA-wjm4-hfwg-5w5r) * **补丁:** [Commit d575c8d](https://github.com/opensourcepos/opensourcepos/commit/d575c8da9a1d7af8313a1e758e000e243f5614ef) * **报告者:** [Aditya Singh (Nixon-H)](https://github.com/Nixon-H)
标签:CSRF, OpenVAS, PHP, PoC, Web安全, 多模态安全, 数据可视化, 暴力破解, 蓝队分析