Vamos ya con la quinta parte de la "saga" SQLi, como explotarlo a mano. Si aún no has leído las entradas anteriores, te recomiendo que pinches aquí para leerlas y practicar antes de ponerte con este lab, ya que estamos en una parte algo más avanzada.
Esta vez entramos con una blind SQLi con errores condicionales. Si en la última entrada nos devolvía un "welcome back", esta vez será un error. Estamos trabajando con Oracle, hay que tenerlo en cuenta.
Vamos de nuevo con Burp. Pasamos la petición y ponemos una comilla en el valor de la cookie. Vemos que en la respuesta nos aparece el error que mencionaba.

Esta vez haremos uso de los condicionales, concretamente CASE, quedando la inyección así:
'+UNION+SELECT+CASE+WHEN+(41=41)+THEN+to_char(1/0)+ELSE+NULL+END+FROM+dual
--
Le estamos diciendo que haga la división entre 0 para provocar el error.

Es decir, si la primera condición (41=41) se cumple (es verdadera), entonces entra en la división por 0. Si no es verdadera (falsa, 41=42) no hace nada (null), es decir, mostraría la web "normal".
Lo siguiente es preguntar si existe el usuario administrator, para ello, lo hacemos de la siguiente forma:
'+UNION+SELECT+CASE+WHEN+(username='administrator')+THEN+to_char(1/0)+ELSE+NULL+END+FROM+users--
Acordarse de cambiar el dual por users :D. Si el usuario administrador existe, entra en la división por 0 y dará el error. Si no existe, muestra la web.

Otro nuevo paso es preguntarle si la contraseña es menor de 20 caracteres.
'+UNION+SELECT+CASE+WHEN+(username='administrator'+AND+length(password)>20)+THEN+to_char(1/0)+ELSE+NULL+END+FROM+users--
En este caso le pregunto si la contraseña es mayor de 20 y me devuelve la web normal, lo que indica que la longitud de la contraseña, no llega a 21 caracteres (ya sé que son 20).

Esto mismo se puede hacer con el intruder como vimos en la entrada anterior.

Ya que hemos hecho uso del intruder, aprovechamos para añadir lo siguiente:

Cambiamos el ataque a cluster bomb para poder poner 2 payloads. El primero será de tipo numbers del 1 al20 y el segundo será lista simple con letras de la 'a' a la 'z' y del '0' al '9'.

Filtrando por las respuestas para que solo saque los de "error 500", ya tenemos la contraseña (en mi caso: ie20h9c3asghl1kvn53v). Ahora a ordenar y hacemos login como administrator.

Pues con esto, hemos terminado por hoy.
Nos vemos en la siguiente.
0 comentarios:
Publicar un comentario