Está en la página 1de 10

SQL INJECTION - NIVEL LOW

1. ¿Cuál es el usuario activo de la base de datos? Nota: no se permite el uso de herramientas


automáticas para este ejercicio.

El usuario activo es root@localhost

He utilizado el payload 1’ AND ‘A’=’A’ UNION SELECT user(),null dentro de la cadena de texto,
como diferencia a lo que se ha utilizado en el video explicativo y me ha devuelto el usuario
activo en la BBDD.

2. ¿Qué payload utilizarías para recuperar la versión de la base de datos? Nota: no se permite
el uso de herramientas automáticas para este ejercicio.

El payload es ‘ or 1=1 union select version(),1 #.

La versión de la base de datos es 10.1.29-Maria DB-6

- NIVEL MEDIUM

3. ¿Qué payload utilizarías para recuperar el nombre de la base de datos? Nota: no se permite
el uso de herramientas automáticas para este ejercicio.

Primero mando una request en la URL (he utilizado la anterior que tenía ya puesta) para
capturarla con el Burpsuite y mandarla al repeater.
He cambiado la query de user() a database() y devuelve esto:

El nombre de la base de datos es: “dvwa”

4. ¿Qué payload utilizarías para listar todos los usuarios (nombre del usuario) y contraseñas
(hash) de la base de datos? Nota: El payload no puede superar los 70 caracteres y no se
permite el uso de herramientas automáticas para este ejercicio.

Simplemente, en el repeater hago la query de select first_name,password from users y me los


lista todos con sus respectivas contraseñas.

SQL INJECTION (BLIND) - NIVEL LOW

5. ¿Qué payload/s utilizarías para determinar la presencia de la vulnerabilidad? Describe el


proceso a seguir.

Sql injection (Blind) es un poco mas complejo que sql injection ya que si hay algún error en el
Payload te devolverá a la página en blanco, es decir no te devuelve ningún resultado.

Para determinar la presencia de vulnerabilidad, se hacen los checks correspondientes:

Determinar la vulnerabilidad junto a si es de texto o numérica.

Con el Payload id=1 and 1=1 y 1=0 no puedo determinar si hay inyección de código ya que me
devuelve las condiciones verdaderas y falsas. Con el payload id=1’ AND ‘1’=’1 si que puedo
determinar que hay inyección del tipo texto ya que devuelve el texto de la consulta y con id=1’
AND ‘1’=’0 no me lo devuelve. Con estos datos podemos determinar que hay una inyección de
código tipo texto.
- NIVEL MEDIUM

6. Utiliza una herramienta para explotar la vulnerabilidad y listar todos los usuarios (nombre
del usuario) y contraseñas (hashes) de la base de datos. ¿Qué instrucción has utilizado? ¿Cuál
ha sido la salida de la herramienta?

Utilizaré SQLmap:

-Conecto sqlmap con la URL de sql injection Blind, agrego la cookie y un PAYLOAD
true(previamente ejecutado en dvwa) para que me vaya mostrando las BBDD disponibles.

-una vez tengo los resultados voy accediendo a las diferentes tablas y columnas hasta llegar a
los usuarios:

Resultado final:

COMMAND INJECTION - NIVEL LOW

7. ¿Qué payload utilizarías para explotar la vulnerabilidad y listar el contenido del archivo
/etc/passwd? (Copia también las 3 primeras líneas del archivo)

file.txt ; cat /etc/passwd #


- NIVEL MEDIUM

8. ¿Qué payload utilizarías para saber el directorio actual dentro del sistema de archivos?

En este nivel se han eliminado los simbolos “&& y ;” igualándolos a “”, ya no podemos
utilizarlos pero tenemos aún & y ||.

El payload utilizado es:

127.0.0.1 & ls

9. ¿Qué payload o payloads utilizarías para encontrar el usuario y la contraseña de la base de


datos? Pista: Ambos están se almacena en el archivo “config.inc.php”.

Primero navego en busca de el archivo.

127.0.0.1 & ls

127.0.0.1 & ls ../ -Bajo otro nivel

127.0.0.1 & ls ../../ -Aquí encuentro una carpeta llamada config. Voy a ver que tiene dentro.

127.0.0.1 & ls ../../config. Aquí está el archivo que buscamos.


Lo voy a abrir para ver que contiene.

XSS (REFLECTED) - NIVEL LOW

10. Aprovecha la vulnerabilidad para crear un formulario falso de inicio de sesión. Escribe el
payload que has utilizado.

Dentro del cuadro de texto, introcuzco HTML puro para crear un inicio de sesión falso:

<p>Inicio de sesión</p><br>

<input type=”text” vlue=”nombre”><br>

<input type=”text” vlue=”contraseña”>

- NIVEL MEDIUM

11. Indica el payload que utilizarías para abrir una ventana emergente (popup).

<scr<script>alert(“esto es un popup”)</scr</script>ipt>

En teoría, debería borrar las etiquetas script completas y dejar las que están separadas y hacer
el popup pero me borra todo, asique, he añadido una foto que al hacer click salte el popup.

<img src=”#” onclick=alert(“popup!”) >


Al final he podido, simplemente intercalando mayúsculas y minúsculas:

<ScrIpt>alert(‘popup’)</ScrIpT>

12. Indica el payload que utilizarías para incluir un marco que incluya una página externa que
ocupe toda la pantalla, tapando la página de DVWA por completo.

<ScrIpt>window.location=”http:www.google.es”</ScrIpT>

No he conseguido abrir una ventana encima, solo abrir una página.

He intentado abrir un html y un Div color verde que ocupase todo el ancho y alto de la pantalla
pero no me ha abierto.

XSS (STORED) - NIVEL LOW

13. ¿Cuál es el nombre del parámetro vulnerable en el formulario? Incluye un payload de


ejemplo de cómo explotar la vulnerabilidad.

El nombre del parámetro vulnerable es el cuadro mensaje.

Pondría un nombre y en el recuadro de Message meteria el script.

<ScrIpt>alert(‘popup’)</ScrIpT>

CSRF - NIVEL LOW

14. Describe en qué consiste la vulnerabilidad que tiene el formulario y cómo la explotarías.
La vulnerabilidad consiste en que la propia URL lleva toda la información posible par aun
cambio de contraseña, esto se traduce a que si tu le mandas un correo a un usuario pidiendo
que pinche en el enlace y el enlace es:

127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=password&password_conf=password&C
hange=Change#

La contraseña se restabecera a “password” y quien ha mandado el correo falso podrá saber


sus credenciales.

- NIVEL MEDIUM

15. Aprovechando la vulnerabilidad “XSS (Stored)”, utilízala para explotar el CSRF y que a
cualquier usuario que acceda a esa página se le cambie la contraseña de su cuenta.

127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=password&password_conf=password&C
hange=Change#

BRUTE FORCE

16. Indica 3 herramientas que podrías utilizar para llevar a cabo un ataque de fuerza bruta
contra un formulario de login.

SSB, THC-Hydra y Burp

17. Usando alguna de estas herramientas, obtén la contraseña de los siguientes usuarios. Para
ello, cierra sesión en DVWA y ataca el formulario de login de la aplicación. Incluye también la
instrucción utilizada para lanzar la herramienta o una descripción de cómo la usaste:

• admin • gordonb • 1337 • pablo • smithy

Utilizare Burp y para ahorrar un poco de tiempo,pondré a el usuario y la contraseña entre


signos para poder decir que meter luegoen el payload 1 y 2. Para los usuarios, en el payload 1
metere los 5 usuarios a sacar la pass y en el payload 2 meteré una bateria de contraseñas 6
de las cuales 5 son las correctas para estos usuarios.
WEAK SESSION IDS - NIVEL LOW

18. Describe cómo se generan los valores de la cookie “dvwaSession”.

Se generan mediante una suma de sesión.

Cuando generas la cookie te da el valor de +1.

Como resumen, no hace falta saber usuario y contraseña del usuario, simplemente con poner
una cookie de dvwaSession distinta de 0 entraras.

- NIVEL MEDIUM

19. DESCRIBE CÓMO SE GENERAN LOS VALORES DE LA COOKIE “DVWASESSION”.

Se genera una Cookie al parecer con números aleatorios.

Lo mando al sequencer y hago una live capture de 5 threats cada 500 milisegundos.

Copio los resultados y veo que cada segundo se va sumando 1 al valos de la cookie
Entonces podemos decir que la cookie que se genera tiene valor de tiempo.

- NIVEL HIGH

20. Describe cómo se generan los valores de la cookie “dvwaSession”.

Me genera una clave numérica,

Al pasarlo al sequencer y analizarlo, veo que son md5

Los resultados son: 18,19,20,12. Etc.

Es decir, la cookie va aumentando en 1 la sesión como en el nivel low pero encriptado en MD5
OTROS

21. Hay una funcionalidad oculta en la aplicación, ¿la encuentras? Incluye una captura de
pantalla que muestre la nueva funcionalidad cargada en el navegador web.

22. Describe qué se va haciendo a lo largo del siguiente vídeo. Ve describiendo los pasos
desarrollados anotando en minuto/segundo del vídeo en el que se van realizando.
https://www.youtube.com/watch?v=40iLfdRwM8U

Todo el video se basa en SQL injection.

-00:15 el usuario ya logueado en la web(id=2), cambia el id por id=3 para saber el nombre del
usuario 3 y usuario 4

-00:40 el usuario activo mete una condición true por lo que no afecta a la query y devuelve la
primera consulta que es id=4.

-00:54 el usuario mete una condición falsa, por lo que la query no devuelve ningún resultado.

-1:15 el usuario mete el payload id=4 or 1=1 por lo que lista todos los usuarios de la base de
datos.

-1:43 el usuario abre sqlmap metiendo la URL vulnerable para hacer un sql injection
automático.

-2:18 se hace un DUMP para volcar todo el contenido de la tabla usuarios. Porque la consulta
está hecha sobre esa tabla en la web.

23. Lista todas las herramientas que hayas utilizado para realizar los ejercicios y explica dónde
las has utilizado

Para estos ejercicios he utilizado solo BURP y sqlmap.

-SQLMAP lo he utilizado en el ejercicio 6.

BURP Lo he utilizado en los ejercicios 3,4,17,19 y 20

También podría gustarte