彩虹易支付 syskey 泄露高危后门, 可被利用发起订单退款等操作
利用过程:
- 访问者发送任意进入公共初始化的带有
>= 70200的PHP-Version请求头的请求platform_check.php将该值存入SERVER_PHP_VERSION, 并设置用于隐藏字段名的字符串常量SENTENCEIAautoload_real.php按空格拆分句子, 拼出conf和syskey, 读取$GLOBALS['conf']['syskey']- 程序将系统密钥写入
Set-Cookie: PHPSESSID响应头, 返回给请求者
syskey 主要用途:
- 已知订单号, 伪造签名查询订单
- 已知订单号, 发起订单退款
- 已知红包编号, 领取红包
- 加解密 Cookie 到中间值, 但无法直接生成有效凭据
- 下单防刷, 部分授权, 实名认证流程, 收款链接, 邀请码等
影响范围:
已确认, 最新版本受影响, 2025 年的某个版本也受影响 根据文件时间戳来看, 至少 2023 年 10 月的版本开始就已受影响
修复步骤:
- 立即将这里提供的补丁文件放入 includes/vendor/composer, 重载 php
- 去数据库 pay_config 表的 k=syskey 那一行, 重新生成 32 位字母数字 syskey, 并删除数据库 pay_cache 表中 k=config 这条配置缓存
- 使用上面提供的脚本验证是否修复成功
- 核实业务数据, 比如订单数据是否有异常退款等
- 轮转后, 登录态失效, 上述提到的收款码, 邀请码, 红包链接等部分业务数据也会失效, 请及时核实更新
文件中提供了相应脚本, 可进行后门的简单检测和利用测试 Tip: 注意到彩虹自己的网站这个后门仍可用
原文以及补丁文件请前往 tg 频道 听荼蘼逼逼
