jueves, 27 de abril de 2017

Nunca uses un id en claro en una URL !!! Servicios de mensajería.

Estimados amigos de Inseguros !!!


Seguro que siendo usuario de Internet, y de páginas como estas, realizas compras On line. No? Qué raro eres xD

Llevo viendo durante mucho tiempo este fallo en casi todas las plataformas, y es que usan el id de pedido para hacer el tracking, siendo el id de pedido un número en claro, sin hash ni ofuscamiento de ningún tipo. En la URL.

Esta mañana esperando ansiosamente un pedido, ya sabes, rollo F5 compulsivo, me veo que el repartidor ha tenido la cara de ponerme como ausente. Ausente estaba en clases de pequeño. Ausente estaba cuando en casa mi madre me enbroncaba. Ausente estoy cuando entro en modo si-cariño, pero ausente esperando un pedido de ropa que he pagado?


Pedazo de ... el mal ha salido de mi, y aparte de llamar a la agencia, ablbalabl, he pensado en probar el ataque codo-comilla, en la versión "me apoyo en el pc y cambio un número por otro".



Por supuesto que no he utilizado ninguna herramienta automática para ver esto, es ilegal, nada de usar Burp o Zap en modo Intruder. sino que ha sido un accidente, al apoyarme, al pasar el gato por el teclado y luego el otro gato.

No son datos muy sensibles. O si, depende. Podría hacer una traza de por donde va el reparto, sabiendo poblaciones y horarios, adivinar la ruta del repartidor. Podría calcular el número de envíos que gestionan para este proveedor, siendo yo una agencia que quiere hacer una mejor oferta.
Como se el camión, puedo saber que mi vecino del edificio de enfrente pide todas las semanas, en fin, que es información no controlada que no tendría que ser accesible.

Aparte, si el cambio lo haces en el campo cliente y no envio, puedes ver la empresa que usa el servicio. 




La recomendación sería simple, usar un hash en el id de la URL, para que no sea consecutivo o predecible. Aparte, usar un captcha para evitar fuerza bruta. Usar un waf o bloquear el user-agent "gato-curioso" tampoco estaría de mas.

Es curioso porque esto suele pasar en MUCHAS agencias de transporte.

El problema es que muchas usan por detrás webservices en formato REST, que como la gente no conoce o no se ve en la web no se invierte en seguridad... en las que teniendo fechas-códigos usuario y códigos de envío, puedo poner incidencias, o puedo modificar destinos, esto ya si que se considera un fallo de seguridad grave.

En el borrador del Owasp 2017 ya se incluye la falta de medidas defensivas como un fallo de seguridad, en su categoría a7


Para los curiosos, esto me he comprado xDDDDDDD