Sei sulla pagina 1di 12

En la segunda parte del ejercicio final del módulo 2 se propone completar una serie de

ejercicios de web hacking alojados en una máquina virtual. En concreto se intentará completar
el conjunto de ejercicios de Damn Vulnerable Web Apps (DVWA) que podremos encontrar en
http://192.168.1.146/dvwa
Estos ejercicios pretenden ser una guía práctica de posibles vulnerabilidades a encontrar en el
mundo real, la aplicación web tiene un área de configuración en la que podremos establecer el
nivel de seguridad. Para llevar a cabo la mayor parte de estos ejercicios se establecerá el nivel
de seguridad en “medio” o nivel 2 de 3. En aquellos casos en los que el nivel de seguridad se
haya bajado a “Low” se indicará pertinentemente.

CSRF (Cross Site Request Forgery)

La idea de los ataques CSRF es aprovechar la sesión de un usuario loggeado de tal manera que
podamos ejecutar código desde un servidor externo para realizar cambios en la web legítima.
En verdad es aprovechar la persistencia entre pestañas del navegador para enviar acciones
legítimas desde un usuario inadvertido a un servidor.
Nivel de seguridad: Low.

Comprobando el funcionamiento del formulario vemos que podemos introducir una nueva
contraseña para el usuario con el que estamos logueados. Esta contraseña sólo se modificará si
y sólo si, las contraseñas introducidas son iguales. De otra manera, tendremos este mensaje:

En la barra de direcciones URL una vez hemos enviado el formulario correcto, podemos ver la
información enviada al servidor. Manipulando ésta desde la misma barra podemos cambiar la
información enviada sin hacer uso de los cuadros de texto.
Al enviar el formulario completado, vemos que la información introducida en los cuadros de
texto aparece, libremente, en la barra de direcciones; podemos cambiar, desde aquí, la
información enviada al servidor. Comprobamos que funcione.

http://192.168.1.109/dvwa/vulnerabilities/csrf/?password_new=password&password_conf=p
assword

De manera que tenemos un potencial vector de ataque.

Del código fuente de la página copiamos el código relativo al cambio de contraseña y lo


pegamos en un archivo de texto que posteriormente renombraremos con extensión html.
El resultado del archivo csrf.html lo vemos a continuación:

Si alteramos el archivo .html y establecemos una contraseña y también cambiamos la


referencia “#” por la dirección en la que tendremos que ejecutar el cambio de contraseña. Así
haremos que nuestro código sea ejecutado en el servidor a vulnerar.
De esta manera, cuando un usuario acceda a esta página html y haga click sobre el botón
Change, su contraseña será cambiada a “1234” sin que él haya realizado la acción. Además,
aun teniendo una autenticación por cookie, como el usuario está loggeado, la página dará por
válida la orden y efectuará el cambio de contraseña.

En Burp Suite vemos que al hacer click en el botón Change enviamos la orden de cambio al
servidor 192.168.1.23 en el destino “/dvwa/vulnerabilites/csrf/?” Con los parámetros que
hemos establecido.

Y la contraseña, se cambia para el usuario loggeado, en este caso “admin”

Ahora la dificultad reviste en conseguir que un usuario, loggeado haga click sobre nuestro
botón. Podemos ocultar el código en una campaña de phishing o quizás ocultar la acción tras
una falsa acción como la carga de una imagen valiéndonos de una línea como:
<img style=”display:none”
src=http://192.168.1.23/dvwa/vulnerabilites/csrf/?password_new=”1234”&password_conf=”
1234”&Change=Change” alt=””>

Pasamos por Burp Suite y vemos qué está ocurriendo en la comunicación.

Dejamos pasar la consulta y la contraseña ha cambiado.


Probamos con la nueva contraseña y efectivamente, vemos que la hemos cambiado sin la
acción del usuario.

Estos ataques se pueden utilizar en combinación con XSS y las opciones de ataque son
infinitas, sólo limitadas por el ingenio del atacante.

File Inclusion

Los ataques de inclusion de ficheros pretenden vulnerar una laxa restricción de ficheros a
incluir dentro de la web que visitamos. De esta manera, tenemos el ejemplo que nos propone
la máquina virtual.
Como podemos ver, la URL nos indica que tras /?page= podremos incluir un archivo html,
php,… para ser ejecutado en el servidor y mostrado en nuestro navegador.

Así pues, probamos diferentes tipos de restricciones y diferentes tipos de ataque. Tanto
Remote File Inclusion (RFI) en el que el archivo que pretendemos cargar en nuestra URL está
alojado en un servidor externo, como Local File Inclusion (LFI) donde el fichero malicioso está
en el mismo servidor. Para este caso nos valdremos de una Shell que hemos incluido
anteriormente en el apartado de Command Execution (la Shell C99)

Así pues, probamos introduciendo la siguiente dirección en nuestro navegador:

192.168.1.109/dwa/vulnerabilites/fi/?page=../../../peruggia/1512644679-c99txt.html

Efectivamente, podemos cargar los ficheros almacenados en el servidor.

Así pues, podemos acceder al contenido de ficheros sensibles como /etc/passwd. Si usamos la
URL 192.168.1.109/dvwa/vulnerabilites/fi/?page=../../../../../../../../etc/passwd
En cuanto a la carga de ficheros remotos, podemos ver que el servidor no permite la inclusión
de ficheros externos ya que tanto ‘allow_url_fopen’ y ‘allow_url_include’ deben estar
habilitados, y en este caso uno de los dos no lo está.

Potrebbero piacerti anche