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-56380 — Se descubrió que Frappe Framework v15.72.4 contiene una vulnerabilidad de inyección SQL a través del parámetro fieldname en el endpoint de API frappe.client.get_value. | Kitploit
Herramientas/GitHubGitHub/moalali/cve-2025-56380
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubmoalali/cve-2025-56380

CVE-2025-56380

Se descubrió que Frappe Framework v15.72.4 contiene una vulnerabilidad de inyección SQL a través del parámetro fieldname en el endpoint de API frappe.client.get_value.

Ver Repositorio
hace 10 mesesAú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-56380 — Inyección SQL ciega basada en tiempo en Frappe / ERPNext (frappe.client.get_value)

📌 Resumen Se descubrió una vulnerabilidad de inyección SQL ciega basada en tiempo en el endpoint de API frappe.client.get_value en Frappe Framework v15.72.4 (y presente en el código de ERPNext v15.67.0). Un usuario autenticado con acceso a la API de informes/cliente puede inyectar SQL a través del parámetro fieldname. Al insertar funciones de retardo de tiempo (p. ej., sleep(15)) en el parámetro fieldname, un atacante puede confirmar la inyección mediante retardos de respuesta medibles, lo que permite denegación de servicio, divulgación de información (mediante técnicas ciegas) y manipulación de datos.


🛠 Detalles técnicos

  • Tipo de vulnerabilidad: Inyección SQL (ciega basada en tiempo) (CWE‑89)

  • Producto(s) afectado(s): Frappe Framework / ERPNext

  • Versiones afectadas (reportadas):

    • Frappe — 15.72.4
    • ERPNext — 15.67.0 (la misma base de código afectada)
  • Componente afectado: método de API frappe.client.get_value (frappe/client.py)

  • Endpoint vulnerable:

    root@kitploit:~
    /api/method/frappe.client.get_value
    

    Ejemplo de consulta vulnerable:

    root@kitploit:~
    /api/method/frappe.client.get_value?doctype=Report&fieldname=ref_doctype+%2F+sleep(15)+&filters=Profit+and+Loss+Statement&_=1752174156893
    
  • Parámetro vulnerable: fieldname (sanitizado incorrectamente / concatenado en SQL)

  • Tipo de ataque: Remoto (requiere autenticación y acceso a la API de informes)

  • Gravedad: Alta (la inyección SQL ciega basada en tiempo permite exfiltración de datos, DoS y manipulación)

  • Puntuación CVSS v3.1 estimada: 8.0 (Alta) — estimación basada en una inyección SQL remota que requiere autenticación y permite divulgación de datos y DoS; la puntuación oficial debe ser realizada por los asignadores.

  • Estado: Sin corregir (según lo reportado)

  • Descubierto por: Mohammed Aloli (GitHub: https://github.com/MoAlali)

  • Fecha de descubrimiento: No especificada en el informe

  • ID CVE: CVE-2025-56380


🚀 Prueba de concepto (PoC) — Inyección SQL ciega basada en tiempo

Solo pruébelo en entornos autorizados / de laboratorio. No lo ejecute contra sistemas que no posea o para los que no tenga permiso explícito de prueba.

Solicitud PoC (ejemplo): imagen

root@kitploit:~
GET /api/method/frappe.client.get_value?doctype=Report&fieldname=ref_doctype+%2F+sleep(15)+&filters=Profit+and+Loss+Statement&_=1752174156893

Pasos para confirmar

  1. Autentíquese en la instancia objetivo de Frappe/ERPNext con un usuario que pueda acceder a la API de informes/get_value.
  2. Envíe la solicitud GET anterior (o un payload equivalente codificado en URL).
  3. Observe el tiempo de respuesta; si la respuesta se retrasa aproximadamente 15 segundos, esto indica una inyección basada en tiempo exitosa.
  4. Repita la misma solicitud para confirmar la reproducibilidad.
  5. Elimine el payload inyectado +%2F+sleep(15)+& y observe que la respuesta se devuelve de inmediato, lo que confirma que la inyección causa el retardo.

Notas: Reemplace sleep(15) con otras funciones de tiempo o valores de tiempo adecuados al DBMS del backend (p. ej., pg_sleep(n) para PostgreSQL) según el motor de base de datos. El PoC demuestra la inyección ciega mediante temporización; se podrían usar payloads más complejos para extraer datos bit a bit.


🧪 Vectores de ataque e impacto

  • Vector de ataque: Un usuario autenticado crea solicitudes GET a /api/method/frappe.client.get_value con un parámetro fieldname malicioso que contiene payloads SQL (funciones de retardo de tiempo).

  • Impacto:

    • Denegación de servicio: Retardos forzados en la respuesta del servidor (agotamiento de recursos si se abusa).
    • Divulgación de información: Extracción ciega de datos mediante técnicas basadas en tiempo (consultas bit a bit / condicionadas por tiempo).
    • Manipulación de datos: Posibilidad de alterar el estado de la base de datos si hay otros vectores de inyección SQL disponibles.
    • Otros: Escalada del impacto dependiendo de los privilegios de base de datos disponibles para el usuario de la aplicación.

🔐 Recomendaciones de mitigación

  1. Consultas parametrizadas / Sentencias preparadas: Asegúrese de que fieldname y toda entrada proporcionada por el usuario nunca se concatenen directamente en SQL. Utilice consultas parametrizadas o APIs ORM que enlacen parámetros correctamente.
  2. Validación estricta de entrada / Lista blanca: Para parámetros que deban ser nombres de campos o identificadores, valide contra una lista blanca estricta de nombres de campo válidos conocidos o use una asignación del lado del servidor en lugar de aceptar identificadores de campo sin procesar de los clientes.
  3. Escape seguro de identificadores: Si los identificadores deben usarse dinámicamente, use funciones seguras de comillas/escape de identificadores específicas de la base de datos — y aún así restrinja los valores permitidos.
  4. Cuenta de base de datos con privilegios mínimos: Ejecute la aplicación con un usuario de base de datos que tenga solo los privilegios necesarios (solo lectura cuando sea posible para los endpoints de informes).
  5. Límite de velocidad y monitoreo: Aplique límites de velocidad y detecte patrones de solicitud anómalos o pruebas repetidas de retardo de tiempo; alerte sobre tráfico sospechoso.
  6. Auditoría y registro: Registre las solicitudes a endpoints de API sensibles y supervise payloads sospechosos (p. ej., sleep, pg_sleep, benchmark, /, ;).
  7. Parche y lanzamiento: Los desarrolladores de Frappe/ERPNext deben auditar frappe.client.get_value y la ruta de código que maneja fieldname/filters, reemplazar la concatenación insegura con APIs seguras y lanzar un parche de seguridad. Los operadores deben aplicar las actualizaciones con prontitud.

🔗 Referencias

  • Descubridor / Reportero: Mohammed Aloli — GitHub: https://github.com/MoAlali — X: https://x.com/alaliksa_ — LinkedIn: https://www.linkedin.com/in/mohammedaloli/
  • Bases de código de Frappe / ERPNext (revisión y parche): https://github.com/frappe/frappe , https://github.com/frappe/erpnext
  • Guía general de SQLi: OWASP SQL Injection Cheat Sheet — https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html

🙏 Agradecimientos

Descubierto por Mohammed Aloli


📢 Descargo de responsabilidad

Esta información se proporciona únicamente con fines defensivos y de remediación. No intente explotar esta vulnerabilidad contra sistemas que no posea o para los que no tenga autorización explícita de prueba. Los operadores deben priorizar el parcheo, aplicar correcciones de codificación segura y seguir las recomendaciones de mitigación anteriores.

Descargar herramienta
  • Pruebas de seguridad: Agregue pruebas automatizadas para detectar inyección SQL (incluida la ciega basada en tiempo) en los endpoints de API.