# Vulnerabilidades en el lado del servidor

## ¿Qué es un ***"path traversal"***?

***"Path traversal"*** también se conoce como directorio transversal. Estas vulnerabilidades permiten a un atacante leer archivos arbitrarios en el servidor que ejecuta una aplicación. Esto puede incluir:

* Código y datos de la aplicación.&#x20;
* Credenciales para sistemas back-end.&#x20;
* Archivos sensibles del sistema operativo.

En algunos casos, un atacante podría escribir en archivos arbitrarios del servidor, lo que le permitiría modificar los datos o el comportamiento de la aplicación y, en última instancia, hacerse con el control total del servidor.

## Lectura de archivos arbitrarios mediante path traversal

Imagine una aplicación de compras que muestra imágenes de artículos en venta. Esto podría cargar una imagen usando el siguiente HTML:

```
<img src="/loadImage?filename=218.png">
```

La URL **`loadImage`** toma un parámetro de ***nombre de archivo*** y devuelve el contenido del archivo especificado. Los archivos de imagen se almacenan en el disco en la ubicación **`/var/www/images/`**. Para devolver una imagen, la aplicación añade el nombre del archivo solicitado a este directorio base y utiliza una API del sistema de archivos para leer el contenido del archivo. En otras palabras, la aplicación lee desde la siguiente ruta de archivo:

```
/var/www/images/218.png
```

Esta aplicación no implementa defensas contra ataques path traversal. Como resultado, un atacante puede solicitar la siguiente URL para recuperar el archivo ***/etc/passwd*** del sistema de archivos del servidor:

```
https://insecure-website.com/loadImage?filename=../../../etc/passwd
```

This causes the application to read from the following file path:

```
/var/www/images/../../../etc/passwd
```

La secuencia ***../*** es válida dentro de una ruta de archivo, y significa subir un nivel en la estructura de directorios. Las tres secuencias consecutivas ***../*** suben desde ***/var/www/images/*** hasta la raíz del sistema de ficheros, por lo que el fichero que se lee es:

```
/etc/passwd
```

En los sistemas operativos basados en Unix, se trata de un archivo estándar que contiene detalles de los usuarios registrados en el servidor, pero un atacante podría recuperar otros archivos arbitrarios utilizando la misma técnica.

En Windows, tanto ***../*** como ***..\\*** son secuencias válidas para atravesar directorios. El siguiente es un ejemplo de un ataque equivalente contra un servidor basado en Windows:

```
https://insecure-website.com/loadImage?filename=..\..\..\windows\win.ini
```

## Laboratorio: Recorrido de rutas de archivos, caso simple

Este laboratorio contiene una vulnerabilidad de path traversal en la visualización de imágenes de productos.

Para resolver el problema, recupere el contenido del archivo ***/etc/passwd***.

## **Solución del laboratorio**

Me he ido a la web, he abierto en una nueva pista una de las imágenes, he pegado en la barra de direcciones siendo reemplazado el parámetro que llevaba a la imagen por esto ../../../etc/passwd"

<figure><img src="/files/fFwmvlKpKPlexlLPwB8w" alt=""><figcaption><p>La respuesta del servidor al realizar la petición</p></figcaption></figure>

La respuesta del servidor me retorna ***"root"***

../../../etc/passwd

Tambien he probado instalando BURP SUITE Community Edition. Y siguiendo los pasos de este [video](https://www.youtube.com/watch?v=XhieEh9BlGc) he podido conseguir el mismo resultado pero en la herramienta Burp suite.

Primero poner a escuchar a Burp Suite el navegador mediante un proxy.

<figure><img src="/files/fJ16MjW4AznlLRvv9PaT" alt=""><figcaption><p>Salida por pantalla de la petición a la web</p></figcaption></figure>

Seleccionar la opción de "REPEATER" para poder enviar cabeceras.

<figure><img src="/files/OF6n8NKcTZZiricFPJQC" alt=""><figcaption><p>Enviar al "Repetidor"</p></figcaption></figure>

Una vez que estamos en repeater, volveremos a enviar una petición.

<figure><img src="/files/7LDi6OBMyoaHxIMeWmrr" alt=""><figcaption><p>Vemos como nos reporta código ofuscado la imágen</p></figcaption></figure>

Ahora vamos a probar a poner la ../../../etc/passwd y ver si el servidor es susceptible a esta forma de intrusión. Para ello&#x20;

Primero modificamos el parámetro de file=55.png, quitamos la imagen y ponemos nuestra cadena de texto con el directorio passwd.

Luego una vez modificado pulsamos en el botón "Send", y finalmente verificamos que tenemos passwd de root.

<figure><img src="/files/8HhY5VkXYoA7HK3MaBRx" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ciberseguridad.alberlome.com/academia-burp-suite/vulnerabilidades-en-el-lado-del-servidor.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
