特别感谢 RackNerd 的 CEO Dustin Cisneros (网名 @dustinc)与 LEB/LET 社区分享此技巧,因为这里很多社区提供商都使用 WHMCS。Dustin 在 ZHUJIMAO.COM 上发表的文章链接在此。他还分享了一个 MySQL 命令(如下所述),用于检查您是否可能之前受到过此漏洞的影响。
如果您不是服务提供商或 WHMCS 用户,何不查看 RackNerd 的最新优惠,其中包括每年仅需 11.38 美元起的 VPS 系统?
2023年6月20日,WHMCS悄无声息地在其博客上发布了一项安全更新,没有任何电子邮件或社交媒体通知。Facebook上没有,Twitter上没有,LinkedIn上也没有……什么都没有。难道大家每天都会主动查看并刷新WHMCS博客吗?/s
WHMCS 将此描述为“已发现影响所有 WHMCS 版本的重要支付声明问题和 XSS 安全问题。”糟糕。
好的。换句话说,这使得不法分子能够将实际上并未付款的发票标记为已付款。这意味着那些严重依赖自动化且不审核交易的供应商可能会因此损失部分收入。
当然,接下来WHMCS的回应不出所料,又是一出典型的官腔:“目前暂不披露有关这些问题的更多细节。 ”
简而言之……请将您的 WHMCS 更新到最新版本,或按照https://blog.whmcs.com/133735/security-update-2023-06-20中提到的补丁集说明进行操作。
如果您正在寻找 WHMCS 的替代方案,Clientexec 值得考虑。值得一提的是,RackNerd 为所有活跃的 RackNerd 客户提供免费的 Clientexec 许可证。相当不错。
原帖/详情由 RackNerd 的 Dustin 提供
对于使用 WHMCS 的服务提供商而言,WHMCS 于 2023 年 6 月 20 日悄然在其博客上发布了一项安全更新,并未通过电子邮件或社交媒体发布任何通知。此次更新影响该日期之前的所有 WHMCS 版本。
根据 WHMCS 的说法,此次安全更新描述为:“已发现一个重要的支付声明问题和一个 XSS 安全问题,这两个问题会影响所有版本的 WHMCS。 ”
虽然这不会直接影响客户,但可能会导致供应商收入损失,因为它实际上允许不法分子将发票错误地标记为已付款,而实际上并没有付款。
为了彻底解决此漏洞,请将 WHMCS 更新到最新版本,或按照https://blog.whmcs.com/133735/security-update-2023-06-20中提到的补丁集说明进行操作。
如何查看您是否曾受到影响
检查的最佳方法是将您收到的款项(在您的商户账户中)与 WHMCS 系统中已支付的发票进行比较。
RackNerd 团队发现,这种漏洞通常涉及一张发票 ID 已被实际支付,而另一张未支付的发票 ID 与已支付的发票共享同一个交易 ID。通常情况下,如果存在恶意行为,攻击者会实际支付一张金额较小的发票,同时使用相同的交易 ID 将一张金额较大的发票错误地标记为已支付。
致供应商:
为了进一步帮助您(但这并不能替代手动审核,但仍然有助于您找到正确的方向),RackNerd 的开发人员创建了一个 SQL 查询,您可以在 WHMCS 数据库中运行该查询。这将有助于识别 WHMCS 数据库中可能存在的任何重复事务 ID。以下查询是只读的,不会对您的数据库进行任何更改,但我们仍然建议您在执行任何 MySQL 操作之前进行备份。
SELECT a.* FROM tblaccounts a JOIN ( SELECT transid FROM tblaccounts WHERE transid IS NOT NULL AND transid <> ” AND description NOT LIKE '%Refund%' GROUP BY transid HAVING COUNT(transid) > 1 ) b ON a.transid = b.transid WHERE a.transid IS NOT NULL AND a.transid <> ” AND a.description NOT LIKE '%Refund%';
运行上述查询后,按日期(从最新到最旧)排序,并检查“invoiceid”和“transid”列。如果您发现不同发票 ID 的“transid”相同,则可能需要手动检查这是否是故意的。
虽然 WHMCS 没有公布有关该漏洞的具体细节,并提到“目前不会披露有关这些问题的更多细节”,但我们的观察表明,它主要影响将 WHMCS 与 Stripe 结合使用的服务提供商。