Vulnerabilidad en sistema de saldos y movimientos online de la Tarjeta BIP

Para los que no saben lo que es la tarjeta bip:

Este sistema de pago del transporte público de Santiago, tiene un sistema que nos permite monitorear en línea los saldos y los movimientos de nuestra tarjeta y de ésta forma saber dónde cargamos con dinero la tarjeta, en qué buses o metro la usamos, cuánto salgo nos queda, etc. Este sistema no es en tiempo real por lo que asumo que no saca los valores directamente de la base de datos del sistema de transporte, además desconozco si tiene permisos para escribir en la base de datos o solamente leer.
El sistema tiene un bug que nos puede permitir, con un poco de ingenio, hacer un ataque de denegación de servicio distibuido (DDoS) y dejar el sistema (de saldos y mov. en linea) offline y posiblemente realizar inyección de código SQL (SQL-Injection) . No me he puesto a investigar que otro impacto podría tener.

El sistema nos permite ver la cantidad de movimientos y saldos de nuestra tarjeta por periodos de mes actual, 60 y 90 días, sin embargo, es posible modificar esos valores alterando el atributo “value” del elemento del formulario. Si, así de sencillo.

Código HTML original:


Pruebas de concepto (PoC)

1. Modificamos el valor de “Mes Actual” por un número negativo.


Y ejecutamos la consulta:

2. Modificamos el valor de “Mes Actual” por el número 5.


Y ejecutamos la consulta:

Si se fijan en la fecha, podrán ver que sólo se mostró información desde hace 5 días.

3. Modificamos el valor de “Mes Actual” por una comilla para generar un error de sintáxis:


Y ejecutamos la consulta:

Si cambiamos el valor de “Mes Actual” a uno muy alto, por ejemplo 99999999999999999999999999999999999999 podemos ver cómo el sistema ya comienza a comportarse de forma extraña, por ejemplo ver la fecha:

Operación: Cartola de movimientos
Tarjeta bip!: 6547XXXXX
Fecha: 11/02/2010 10:57
Movimientos desde: 90/37/-2.7

De ésta forma podemos manejar arbitrariamente la consulta.

Queda más que demostrado que el famoso sistema para ver los saldos y movimientos en línea de la tarjeta bip no está validando los parametros de entrada y con un poco de ingenio podemos realizar distintos tipos de ataques. Se pueden generar simultaneamente consultas pesadas en el servidor, provocando su caída. Tambien, con un poco más de conocimientos y habilidades es posible lograr la inyección de código sql en la consulta.

4 comentarios

  1. Muy interesante, que sorprendente en sistema tan masivo, tenga errores de ese tipo.

    Saludos

  2. Jajajja… siempre me sorprendo con tus post ¡¡¡

  3. Muy buenoça la info, incluso si alguien guarda el número de tarjeta de otra persona puede saber donde ha viajado, se tienen las estaciones de metro y los recorridos, :O

    jajaja

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Esto sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.