CVE-2020-37168Ecommerce Systempay 1.0支付系统存在严重的弱加密实现漏洞,主要涉及支付签名生成机制的安全性不足。攻击者能够通过网络流量截获支付表单数据及其对应的SHA1签名。利用该漏洞,攻击者可以实施暴力破解攻击,逐一测试密钥候选者以还原用于签名的16位生产密钥。一旦密钥被成功破解,攻击者即可伪造合法的支付签名,恶意篡改交易金额,对电商平台的资金安全构成极大威胁。
该漏洞源于Ecommerce Systempay 1.0在支付验证环节采用了不够健壮的加密策略。系统依赖一个仅16位字符的生产密钥来计算支付参数的SHA1哈希值作为签名。由于密钥空间相对狭窄,且缺乏针对暴力破解的有效防护机制(如速率限制或复杂的密钥派生函数),攻击者能够利用离线攻击方式破解密钥。具体利用过程如下:首先,攻击者捕获客户端向支付网关发送的POST请求数据包,从中提取出所有明文参数(如金额、订单号等)以及服务端返回的签名字段。接着,攻击者在本地编写脚本,遍历所有可能的16字符密钥组合,对明文参数进行SHA1运算,并将计算结果与截获的签名进行比对。当哈希值匹配时,即表明找到了正确的生产密钥。随后,攻击者便可以任意修改交易参数(例如将100元改为0.01元),利用还原出的密钥重新生成签名,从而构造出看似合法的欺诈性支付请求。