Esta pagina se ve mejor con JavaScript habilitado

SSRF: leyendo archivos locales del servidor de Downnotifier

 ·  ☕ 3 minutos de lectura  ·  ✍️ C0wb0y

Hace un tiempo escribí un write-up acerca de como fui capaz de leer archivos locales provenientes del servidor de un servicio web llamado Downnotifier y para poder realizar tal acción, se explotó una vulnerabilidad llamada Server Side Request Forgery.

El write-up originalmente fue escrito en inglés por medio de la plataforma Openbugbounty, pero ahora lo escribo mediante este blog y traducida al español.


Hola chicos, este es mi primer write-up y me gustaría compartirlo con la comunidad de bug bounty, es sobre un SSRF que encontré hace algunos meses.

DownNotifier tiene un programa de recompensas en Openbugbounty, entonces decidí darle un vistazo a https://www.downnotifier.com. Cuando navegué por el sitio web, me di cuenta de un campo para entrada de texto de tipo URL y rapidamente la vulnerabilidad SSRF vino a mi mente.

Obteniendo XSPA

La primer actividad por realizar es agregar http://127.0.0.1:22 en el campo de texto “Website URL”.

Después seleccionar “When the site does not contain a specific text” y escribir algún texto aleatorio.

1.- Sección de registro del sitio web.
1.- Sección de registro del sitio web.

Envié esa solicitud y seguidamente dos correos electrónicos llegaron a mi bandeja de entrada unos minutos después. El primero para alertar que un sitio web está siendo monitoreado y el segundo correo para alertar que el sitio web está fuera de servicio pero dentro de un archivo de HTML.

2.- Bandeja de entrada con los correos.
2.- Bandeja de entrada con los correos.

¿Y cual era la respuesta?

3.- Versión de SSH.
3.- Versión de SSH.

Obteniendo Lectura de Archivos Locales

A este punto ya estaba emocionado, pero eso no es suficiente para probar que se pueden obtener archivos con datos sensibles, entonces intenté el mismo proceso pero con algunos esquemas de URI como lo son file, ldap, gopher, ftp, ssh, pero ninguno dió resultado.

4.- El esquema FILE no es aceptado.
4.- El esquema FILE no es aceptado.

Estuve pensando como podría hacer un bypass a ese filtro y recordé un write-up mencionando un bypass usando una redirección con la cabezera Location en un archivo de PHP alojado en tu propio servidor.

5.- Archivo PHP.
5.- Archivo PHP.

Alojé el archivo de PHP con el código mostrado en la imagen anterior y se procedió a realizar el mismo proceso registrando un sitio web para monitorear.

6.- Redirección a la URI  file:///etc/passwd.
6.- Redirección a la URI file:///etc/passwd.

Unos minutos después un correo electrónico llegó a la bandeja de entrada con un archivo HTML.

7.- Correo con la respuesta.
7.- Correo con la respuesta.

Y la respuesta fue…

8.- Contenido de /etc/passwd.
8.- Contenido de /etc/passwd.

Reporté la vulnerabilidad SSRF al soporte de DownNotifier y ellos arreglaron el fallo muy rápido.

Quiero agradecer al soporte de DownNotifier porque ellos fueron muy amables en nuestra comunicación y me permitieron publicar el presente write-up. También quiero agradecer al bug bounty hunter quien escribió el write-up en el cual utilizó la técnica de redirección con la cabezera Location.

compartir en

Avatar
Escrito por
C0wb0y
Me apasiona el hacking aunque sea siempre un n00b. Soy una persona extremadamente curiosa. Leer libros, ver películas y series, son solo algunos de tantos hobbies que disfruto hacer.