Mi primer bounty

Mi primer bounty

Sergiky

Este es un post especial. No todos los días recibes tu primera recompensa en un programa de Bug Bounty.

Introducción

En el siguiente artículo voy a hablar y contar mi experiencia sobre como descubrí mi primer bounty y de que trataba.

En mi caso, no suelo realizar reconocimiento al principio al menos que se cumplan uno de los siguientes factores:

  • Programa demasiado “difícil”.
  • Cuando no encuentro nada.

Si, así es, cada uno tiene su propia metodología y su forma de trabajar, la mía es ir al programa, clicar en enlace de la página principal y empezar a buscar.

Que fallo fue y como lo encontré

El fallo fue un open redirect. Hace no mucho hackerone dejo de aceptar estas vulnerabilidades, pero el programa junto al que estaba trabajando si las aceptaba.

Este fallo tenía el siguiente aspecto:

https://maindomain.com/offlinepage/d#newUrl=/<maindomain.com>

Yo al principio intenté cambiar el valor de newUrl, pero no vi nada nuevo.
Entonces pasé y seguí investigando la aplicación web, entonces decidí darle a la flecha de atrás del navegador, volví a mirar la página, pasé el ratón por encima de un botón y boom, veia que ese botón que redirijia a https://maindomain.com/reflected_value.

Claro y yo pense formas para escaparme de ahí y poder redirigir a otro dominio y lo primero que probe fue utilizar “//evil.com”, enter, irme para delante con la flecha y luego para atrás otra vez y ver que efectivamente redirigía fuera del dominio principal.

Una vez comprobado, empece a estudiar el funcionamiento del componente.

  • En lugar de utilizar las flechas podías simplemente recargar.
  • Probe para un SSRF, pero era client-side.
  • Probe a escalar a un XSS con javascript:alert(0) y algunas otras formas para evadir las diferentes medidas de seguridad de la página.

Pero nada, no encontré ninguna forma de escalarlo. Por lo cuál, decidí reportarlo y esperar mientras aunque de vez en cuando seguía buscando alguna forma de aumentar el impacto.

Gestión de las emociones y proceso del reporte

Parece un poco subrealista tener emociones por este simple fallo, pero después de tanto tiempo preparándome, buscando, aprendiendo, fallando… Antes de este existieron 7 reportes inválidos que no me aceptaron y claro que fue frustante, pero no me rendí.

Respecto al reporte me gustaría recalcar la gran cantidad de tiempo que tardarón en realizar todo el proceso y un malentendido que hubo.

Una vez llego el reporte a la mano de la empresa (que fue rápido), me bajaron la severidad a 0, claro, yo no entendía nada, porque si me lo habían pasado porque me habían bajado la severidad. A las dos semanas de ver el reporte en la zona de “Open” decidí enviar un mensaje pidiendo que lo cerrarán, al siguiente día me respondieron de que mi reporte tenía valor y que aceptaban los open redirect, entonces no había necesidad de cerrarlos y me volvieron a subir la severidad, un poco menos de lo que reporte, pero ahí estaba.

Intento de Web Cache Poisoning

Al pasar un mes yo seguía aprendiendo sobre vulnerabilidades web y estaba con una que me parece super interesante, Web Cache Poisoning. Estaba siguiendo el topic the PortSwigger, realizando los laboratorios, me veía algún research de James Kettle sobre esta vulnerabilidad y cogía nota de todo. Y pensé, porque no intento mezclar el fallo mencionado(que aún no habían solucionado) con este nuevo.

Así fue, empecé a mirar y no encontraba nada y peor, parecía que no estaba entiendo nada, como si mi tiempo no hubiera servidor para nada.

Así que decidí dejarlo y seguir realizando los laboratorios mejorando así mi conocimiento sobre esta vulnerabilidad y entendiéndola mucho mejor. Entonces, terminé un laboratorio y ya estaba quemado y decidí darle otro intento al mezclar estos fallos. Seguía sin encontrar nada, pero lo entendía todo mucho mejor, sabía donde buscar, sabía como funcionaba todo. Ahí fue cuando descubrí que la página dónde estaba el open redirect era vulnerable a web cache poisoning gracias a que probe a realizar lo mismo visto en el último laboratorio que había realizado. Y efectivamente amigos, descubrí un web cache poisoning que era capaz de envenenar la caché y que todos los usuarios que entrarán a https://maindomain.com/offlinepage/ se redirigierán a -> https://maindomain.com/offlinepage/d#newUrl=/<maindomain.com>. Claro, esto con el correspondiente buster para evitar una posible catástrofe.

El gran problema de aquí es que justo el día anterior habían solucionado el fallo del open redirect. Con tan mala suerte de reportar este web cache poisoning y que ya fuera tarde para ser aceptado.

Las políticas del programa tampoco aceptaban DoS con Web Cache Poisoning entonces no hubo nada que hacer.

Conclusión

Detrás de este bounty tan insignificante hay mucho sacrificio, esfuerzo y dedicación, entre semana estudio y los findes de semana en lugar de salir y disfrutar me quedaba probando mis habilidades y mejorándolas haciendo bug bounty.
Exactamente 5 meses en la academia de PortSwigger para recibir mi primer bounty.Por último, me gustaría dar mi punto de visto sobre los VDP, el esfuerzo de una persona tiene que ser recompensado no con una simple carta de agradecimiento.

Comentarios