Derivación del filtro SSRF

May 07 2023
Hola, mi nombre es W1C3 y hoy voy a explicar cómo obtener acceso de lectura de archivos arbitrarios a través de la falsificación de solicitud del lado del servidor (SSRF) omitiendo el filtro. Este desafío fue desarrollado para el WaniCTF.

Hola, mi nombre es W1C3 y hoy voy a explicar cómo obtener acceso de lectura de archivos arbitrarios a través de la falsificación de solicitud del lado del servidor (SSRF) omitiendo el filtro. Este reto fue desarrollado para el WaniCTF .

Nombre

Captura de pantalla

Descripción

Una aplicación que toma capturas de pantalla de tus sitios web favoritos.

Tutorial

Al acceder al sitio web, se puede observar que es una página muy sencilla. Su única funcionalidad es recibir una URL, acceder a la URL usando un navegador web y tomar una captura de pantalla.

Aplicación de captura de pantalla simple

En este desafío, a medida que se proporciona el código fuente, podemos ver que realiza una verificación que debemos omitir, ya que se debe incluir " HTTP " en nuestra solicitud y no se puede incluir " ARCHIVO ".

Revisión del código del servidor

Para verificar esto, intentaremos leer el archivo /etc/passwd , pero sin éxito.

Tratando de identificar la SSRF

Como mencionamos anteriormente, el filtro que debemos omitir debe contener la cadena " http " o no incluir la cadena " archivo ".

Identificación de la SSRF

Ahora que estamos en el paso anterior, sabiendo que SSRF existe y entendiendo el filtro que debemos omitir, agregaremos " File:// " al principio y " ../../../../flag. txt ” o “ ../../../../etc/passwd ” hasta el final. Con esto, podremos leer el archivo “flag.txt” para completar nuestro desafío.

NOTA : el archivo debe contener al menos una letra mayúscula para omitir el filtro

Lectura de archivos arbitrarios

Para hacerlo más fácil, eliminaremos algunos datos de la solicitud. En este caso, nuestra carga útil se vería así:

File:///http/../../flag.txt

Conclusión

En este desafío, hemos demostrado cómo eludir un filtro simple que intentaba evitar SSRF al rechazar el protocolo " archivo " y requerir el protocolo " http ". Al construir cuidadosamente nuestra solicitud con una letra mayúscula en el parámetro " archivo " y usar el protocolo " Archivo: // ", pudimos leer archivos arbitrarios en el servidor.

Gracias por leer esta publicación. Estén atentos a las próximas publicaciones en el blog y no duden en seguirme en las redes sociales para obtener actualizaciones. Además, tenga en cuenta que mi GitHub personal tendrá publicaciones publicadas en español. ¡Adiós!

GitHub: J-W1C3

Twitter: Josewice7

Telegrama: W1C3Mensajes

Únase a mi canal de Telegram para mantenerse actualizado cuando se publiquen nuevas publicaciones.