CVE-2025-61546CVE-2025-61546是edu Business Solutions公司开发的Print Shop Pro WebDesk软件中的一个严重业务逻辑漏洞。该漏洞存在于WebDesk应用程序的/PSP/appNET/Store/CartV12.aspx/GetUnitPrice端点中,版本18.34及之前版本受影响,已在19.69版本中修复。漏洞允许未经身份验证的远程攻击者通过购买负数量商品来创建财务差异,从而可能导致经济损失或系统财务数据被篡改。此漏洞的根本原因在于应用程序过度依赖客户端输入验证控制,而没有在服务器端进行充分的验证。攻击者可以轻松绕过客户端的JavaScript验证,直接向服务器端点发送带有负数数量的恶意请求。由于服务器端缺少对数量参数的合法性检查,负数数量会被系统正常处理,导致订单金额计算错误。攻击者可利用此漏洞进行多种恶意操作,包括但不限于:生成负金额订单、骗取退款、破坏财务记录完整性等。由于该漏洞无需认证即可利用,且CVSS评分高达9.1(严重级别),对使用该软件的组织和机构构成了重大安全风险。建议所有使用受影响版本的用户立即采取修复措施。
该漏洞的技术原理涉及客户端验证与服务器端验证的不一致性。Print Shop Pro WebDesk的购物车功能在CartV12.aspx页面中实现了GetUnitPrice接口,该接口用于计算购物车中商品的单价和总价。正常情况下,前端JavaScript会限制用户输入正数的商品数量,但攻击者可以通过拦截HTTP请求并修改参数值来绕过这一限制。具体利用过程如下:攻击者首先访问WebDesk的购物车功能,选择任意商品后,通过Burp Suite等代理工具拦截发送到GetUnitPrice端点的AJAX请求。将请求中的quantity参数修改为负数值(如-999),然后重新发送请求。服务器端接收到带有负数数量的请求后,由于缺少服务器端验证,系统会正常处理该请求并返回计算结果。负数数量乘以商品单价会产生负的总价,这个负金额会被写入购物车会话。当用户提交订单时,这个负金额订单可能被系统接受,导致财务差异。攻击者可以利用这种负金额订单来骗取系统退款或进行其他欺诈活动。修复方案需要在服务器端实现严格的输入验证,确保数量参数始终为正整数,同时移除对客户端验证的任何依赖。