龙腾码支付 payservicecurl 任意文件读取漏洞分析

龙腾码支付曝高危任意文件读取漏洞 多版本服务器敏感数据可遭窃取

漏洞描述

龙腾码支付系统的 payservicecurl 组件被曝存在任意文件读取漏洞。该漏洞允许攻击者通过构造特殊请求,绕过安全限制直接读取服务器上的敏感文件,可能导致配置文件、数据库凭证、系统日志等核心数据泄露。

受影响版本

  • 龙腾码支付系统 v3.5.0 至 v3.7.2
  • 使用未经验证的第三方支付接口插件的衍生版本

漏洞原理

漏洞源于对用户输入参数缺乏有效过滤:

// 漏洞代码示例
$file = $_GET['file'];
readfile("/var/www/payment/" . $file);数据库账号密码等敏感信息,则证明漏洞存在

## 修复建议
### 临时缓解方案
```nginx
# 在Nginx配置中添加过滤规则
location /payservicecurl {
    if ($args ~* "\.\.") { 
        return 403;
    }
}

终极解决方案

  1. 输入过滤
    添加路径合法性校验:

    $file = realpath("/var/www/payment/" . basename($_GET['file']));
    if(strpos($file, '/var/www/payment/') !== 0) {
       die("Invalid file path");
    }
  2. 权限控制
    将Web服务运行账户设置为非root用户,并限制其目录访问权限

  3. 版本升级
    及时更新至官方发布的安全版本(v3.7.3+)

  4. 日志监控
    对包含特殊字符(../etcproc)的请求进行告警

附录

漏洞复现步骤

  1. 定位接口地址
    通过资产测绘平台搜索特征路径 /api/payservicecurl

  2. 构造恶意请求

    curl -X GET "http://target-domain/payservicecurl?file=../../../config/database.php"
  3. 验证漏洞存在性
    若响应包含