lunes, 1 de septiembre de 2014

Cómo facturé un viaje low cost Barcelona-Sevilla sin pagar la tasa de facturación anticipada

Hoy he tenido lo que se llama una mala / buena experiencia con la web de una conocida compañía de vuelos de low cost y que me recuerda a una serie de divertidos articulo de este mismo blog sobre temas similares. Esta línea aérea, formato low cost, de la que hablo tiene sus ventajas y desventajas que desde mi punto de visto son:
Ventajas:
Es barata... punto: Lo cual me parece bastante para elegirlos, pues esta la cosa "mu má" como decimos en Sevilla.

Desventajas:
Equipaje exiguo: una maletita y poco más.

Tasas muy altas: como no cumplas a rajatabla sus condiciones que algunos usuarios consideran abusivas. Algunas,  como olvidar tu tarjeta de embarque, tienen el coste de 70 pavazos del ala. 

Viaje incómodo: Te molestan todo el rato en el viaje con publicidad y sorteos absurdos que nadie quiere. Vamos que no te dejan echar una cabezadita.

Por otro lado hay cosas que no sabes si es ventaja o desventaja. Cuando vas a hacer el check-in on-line no te permite hacerlo hasta una semana antes a no ser que les pagues 5 €, en cuyo caso puedes facturar cuando quieras con la única ventaja de elegir asiento. Un momento.... ¿pero esto es una desventaja no?
Pues depende amigo. Si eres desarrollador web y lees El lado del mal, aprendes que todas las validaciones que haces en el navegador, hay que hacerlas en el servidor y mira por donde los programadores de la web de una conocida compañía de vuelos de low cost no lo leen. ¿Serán irlandeses y pensarán que todo lo bueno se escribe en inglés?
En la web de esta compañía "Te pongo la miel en los labios pero paga por ello", para poder acceder al la facturación en línea, te dan dos opciones con un Radio Button justo en el momento en que uno esperaba poder sacar su billete impreso. Las dos opciones son:


Figura 1: Opciones de facturación
Facturación extendida: con posibilidad de elegir un asiento por 5 € y facturar cuando quieras.

Facturación gratuita: que como no haya menos de una semana de por medio esta "disabled" (Esto debe dar una pista los desarrolladores web).

Bien, pues como yo me iba un viernes "pa"Barcelona y volvía a casa casi dos semanas mas tarde, he podido sacar el billete de ida para el viernes de la semana anterior a mi viaje (5 días antes) pero el de vuelta no me deja imprimirlo de forma gratuita por hacerlo con mas de siete días de antelación antes de volver, y me venía mal, pues estaré en Barcelona sin impresora. Además, la verdad, me toca los bemoles que me cobren por imprimir algo que ya he pagado y ¡qué coño! me lo retienen con el chantaje de cobrarme 5 €si quiero imprimirlo antes.
Esto lo hacen aposta para que la gente no vuele tranquila y esté pendiente del billete de vuelta, ¡seguro!. A ver sin nos enteramos compañía de low cost, la gente que vuela con low cost lo hace para pagar menos no para que después de sacar el vuelo ustedes la molesten con este tipo de artimañas y sacarle más pasta. 
Es mejor no cabrear en línea a un programador con tiempo y tan tacaño como yo, como hicieron con mi amigo Miguel Ángel en la estafa de "La linterna Molona". Mi tacañería, unida a la curiosidad y a la mala leche que es capaz de provocar las artimañas recaudatorias de esta conocida compañía de vuelos delow cost, ha sido lo que me ha llevado a evitar este chantaje que me parece intolerable. 
Pues bien, la herramienta usada para perpetrar este modesto asalto, es un complemento de Firefox que te permite inspeccionar el código HTML de la web y...modificarlo. Además de depurar Javascript, ver las peticiones al servidor, etcétera, que se llama Firebug y que no solo es archi-conocido por pentesters y también está muy extendido entre los desarrolladores web. Hay más pluginssimilares a éste e incluso ya los navegadores mas modernos traen alguno inspector de código por defecto, pero yo uso este por inercia, pues me gusta como funciona y fue el primero que comencé a usar lo que hace que esté muy familiarizado con sus opciones (nada personal, de veras).


Figura 2: Zonas con opción de disabled. Hay que eliminar varias para activar el Radio Button.

En fin, que me enrollo. Cuando llegué a la opción de facturar la vuelta con el Radio Button "de gratis" desactivado hasta una semana antes, se me puso la cara como elemoticon ese del "guasap" que está rojo con cara de cabreado. En ese momento se me ocurrió inspeccionar el elemento desactivado y buscar el TAG de HTML y, dentro de éste, el atributo que impedía marcarlo con el ratón. Borré todo lo que olía a disabled y ... ahí estaba.



Figura 3: Radio Button activado en el cliente de la web.

Lo pinché con el editor de Firebug, lo eliminé y "tracatrá" se activó en pantalla y lo podía pinchar con el ratón. Ya había conseguido algo pero lógicamente más o menos sabía que aquello podia pasar pues ya había hecho cosas parecidas durante el desarrollo de páginas web, y lo que esperaba era que la validación en el lado del servidor arruinara mi exaltación. Le di al botón de facturar sin ninguna fe pues"...cómo iba yo a suponer que no se validarían los datos en el servidor en una página web como la de Una conocida compañía de vuelos de low cost que factura millones de euros y tal y tal..."


Figura 4: Realiza la facturación y permite imprimir el billete.

Pues nada la realidad es tozuda, no los validó y me dio paso a la página de impresión en PDF y conseguí tener impreso mi billete para volver con la conocida compañía de vuelos de low costsin pagar un duro, pues me ha permitido imprimirlo sin problemas y facturar gratis con mas de una semana de antelación por no validar lo que el usuario selecciona en el navegador, pensando que jamas se le ocurriría utilizar un inspector de códigoHTML para modificar las validaciones y restricciones programadas. El asiento es aleatorio pero por lo menos no tuve que pagar los 5 € para imprimir el embarque antes de tiempo.


Figura 5: El billete de regreso impreso.

Señores de la muy conocida compañía de low cost, para su desgracias los lectores de este blog sabemos que cuanto mas grande es una organización, mas grande es la cagada en seguridad y esto no es ninguna tontería, pues si no has gestionado correctamente este problema de validación mínima, ¿Quién me asegura que los datos de "my credit card" no están por ahí en manos de un cibercriminal con mas conocimiento que yo, y con mas mala leche, capaz de encontrar un fallo mas serio que esta pequeña trampa para coger lo que es mío? 
Y lo dicho, cabrear a un programador por tratar de cobrarle cositas en línea que es injusto pagar, no es bueno, te puede dejar con el alerón trasero al aire y denunciar lo que puede ser un agujerito, pero que seguro que si un equipo profesional te hace un pentesting, te dejan la cabina al descubierto y con las alas principales a la altura del tren de aterrizaje (vamos, ¡con los calzoncillos bajados!). He pasado bien las vacaciones en Barcelona donde vi a mis colegas que me han invitado a su casa de gorra, y por suerte sin preocuparme de cuándo podría facturar la vuelta.
Quiero dar las gracias a los que como JBGTutoriales escribís en los blogs para enseñarnos, porque gracias a ellos he aprendido, modestamente, bastantes cosas de seguridad (... y lo que me queda). Por cierto si alguien quiere visitar mi web y encuentra algún fallo que no dude en decírmelo, pues seguro que tiene algunos, pero al menos no facturo millones y este modesto programador no cobra nada por los servicios que presta, ni almacena datos personales de ningún de sus usuarios.
Saludos!

Autor: José Clemente Agudo Montero
Desarrollador de backend en la web y aplicaciones Android.

No hay comentarios:

Publicar un comentario