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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-68147-OSPOS-Stored-XSS — CVE-2025-68147的PoC仓库:OpenSourcePOS中的存储型跨站脚本(XSS)。该漏洞允许通过商店配置模块中的恶意JavaScript注入进行权限提升。包含载荷详情和补丁验证(v3.4.0)。安全研究员:Aditya Singh (Nixon-H)。 | Kitploit
工具/GitHubGitHub/nixon-h/cve-2025-68147-ospos-stored-xss
漏洞分析代码分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHubnixon-h/cve-2025-68147-ospos-stored-xss

CVE-2025-68147-OSPOS-Stored-XSS

CVE-2025-68147的PoC仓库:OpenSourcePOS中的存储型跨站脚本(XSS)。该漏洞允许通过商店配置模块中的恶意JavaScript注入进行权限提升。包含载荷详情和补丁验证(v3.4.0)。安全研究员:Aditya Singh (Nixon-H)。

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
2123个月前尚未审核
分享

CVE-2025-68147:OpenSourcePOS 中的存储型跨站脚本(XSS)漏洞

元数据详细信息
CVE IDCVE-2025-68147
严重性高危 CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N
漏洞类型存储型跨站脚本(CWE-79)
受影响版本OpenSourcePOS v3.4.0, v3.4.1
修复版本v3.4.2
受影响组件店铺配置模块(退货政策字段)
报告者Aditya Singh (Nixon-H)

📝 摘要

在 OpenSourcePOS 的店铺配置模块中发现了一个**存储型跨站脚本(XSS)**漏洞。该应用程序未能正确过滤用户在"退货政策"字段中提供的输入,便将其存储到 ospos_app_config 数据库表中。

此缺陷允许具有配置权限的认证攻击者(或利用独立 CSRF 链的攻击者)注入任意 JavaScript 载荷。由于"退货政策"会动态渲染到每张销售收据上,因此每当生成或查看收据时,注入的载荷会在任何用户(包括低权限收银员、其他管理员或顾客)的浏览器中自动执行。


🕵️‍♂️ 技术根本原因分析

1. 脆弱逻辑

漏洞位于收据视图模板中:app/Views/sales/receipt_default.php。

应用程序从全局配置数组($this->config['return_policy'])中获取"退货政策"字符串,并准备显示。

  • 错误所在: 开发者使用了原生 PHP 函数 nl2br() 将换行符转换为 HTML 换行标签(<br>)。
  • 失败原因: nl2br() 不会过滤 HTML 特殊字符。它会使 <script>、`` 和 onload 等标签完全保留。

漏洞代码(修复前):

root@kitploit:~
<div id="sale_return_policy">
    <?php echo nl2br($this->config['return_policy']); ?>
</div>

2. 数据库持久化

当管理员保存配置时,载荷会原样存储到数据库中。

  • 表名: ospos_app_config
  • 键名: return_policy
  • 值: Policy Text... <script>alert('XSS')</script>

由于控制器端(Config.php)没有进行输入过滤,视图端(receipt_default.php)也没有进行输出转义,因此该应用程序存在存储型 XSS 漏洞。


💥 概念验证(PoC)

攻击向量

该攻击针对店铺配置面板,但影响的是销售/收据模块。

  1. 入口点: http://[TARGET]/config(用于保存配置的 POST 请求)
  2. 触发点: http://[TARGET]/sales/receipt/[SALE_ID]

逐步利用过程

步骤 1:注入 我们以管理员身份登录,导航至店铺配置 -> 常规。在"退货政策"文本区域中,我们注入了以下具体载荷:

root@kitploit:~
Standard Return Policy: No Refunds.
<script>alert('XSS_BY_NIXON_SUCCESSFUL')</script>

步骤 2:持久化 点击"提交"后,应用程序向 /config/save 发送了一个 POST 请求。载荷成功写入数据库。

步骤 3:触发 为了验证对其他用户的影响:

  1. 我们退出登录,然后以收银员(低权限账户)身份重新登录。
  2. 我们导航至销售模块。
  3. 我们向购物车添加了一个测试商品,并点击**"完成销售"**。
  4. 结果: 应用程序重定向到收据视图(例如 http://localhost/sales/receipt/1)。浏览器解析包含 return_policy 的 div,遇到 <script> 标签,并立即执行 JavaScript。

观察结果: 浏览器弹出一个提示框,显示消息:XSS_BY_NIXON_SUCCESSFUL。

📷 媒体证明

截图 1:警报触发

截图 2:配置中的载荷

🎥 视频演示: 点击下载/观看 PoC 视频


⚠️ 影响场景

这是一个**范围已变更(S:C)**漏洞,因为攻击被存储在服务器上,但在受害者的浏览器上下文中执行。

  1. 权限提升与账户接管:
  • 场景: 攻击者注入一个旨在窃取会话 Cookie 的 JavaScript 载荷。
  • 执行: 超级管理员查看过去的收据(例如 /sales/receipt/105)。脚本静默执行,将 document.cookie(包含 ospos_session ID)发送到攻击者的服务器。
  • 影响: 攻击者劫持超级管理员的会话,无需密码即可完全控制系统。
  1. 可蠕虫化的管理员创建:
  • 场景: 载荷是一个使用 AJAX(XMLHttpRequest)执行管理操作的脚本。
  • 执行: 当登录的管理员查看收据时,脚本强制其浏览器向 /employees/save 发送隐藏的 POST 请求。
  • 影响: 在后台立即创建一个新的管理员账户(例如 hacker / password123)。受害者只看到收据,而攻击者获得了一个永久的后门。
  1. 篡改与钓鱼:
  • 场景: 攻击者修改 DOM 以篡改收据的财务信息。
  • 执行: "退货政策"脚本重写了页脚或付款说明。
  • 影响: 收据显示欺诈性的银行详细信息或加密货币钱包地址("请将款项转账至……"),导致面向客户或企业的金融欺诈。

🛡️ 修复方案

该漏洞已在 OpenSourcePOS v3.4.2 中修复。

维护者应用了一个补丁,实现了上下文感知的输出编码。配置值现在在传递给 nl2br() 之前,先经过 CodeIgniter 的全局 esc() 辅助函数进行包装。

补丁(提交 22297a):

root@kitploit:~
<div id="sale_return_policy">
    <?php echo nl2br(esc($this->config['return_policy'])); ?>
</div>

验证: 升级到 v3.4.2 后,相同的载荷会被渲染为无害的文本:

Standard Return Policy: No Refunds. &lt;script&gt;alert('XSS_BY_NIXON_SUCCESSFUL')&lt;/script&gt;


📅 披露时间线

  • 2025-12-12: 漏洞由 Aditya Singh (Nixon-H) 在手动安全审计中发现。
  • 2025-12-13: 通过电子邮件/GitHub 向维护者(Jeroen Peelaerts)发送负责任的披露报告。
  • 2025-12-14: 维护者确认漏洞。CVE-2025-68147 被预留。
  • 2025-12-14: 开发了补丁(提交 22297a),并由研究人员验证。
  • 2025-12-19: 补丁在版本 3.4.2 中发布。
  • 2025-12-19: 通过 GitHub 安全公告公开披露。

🔗 参考链接

  • 公告: GHSA-xgr7-7pvw-fpmh
  • 补丁: 提交 22297a
  • 报告者: Aditya Singh (Nixon-H)
下载工具