Natas level 15 – OverTheWire – Paso a Paso (Walkthrough) en Español

      Comentarios desactivados en Natas level 15 – OverTheWire – Paso a Paso (Walkthrough) en Español

Para acceder al level 15 de Natas necesitamos los siguientes datos de acceso (la contraseña ha sido obtenida en el reto natas14):

Username: natas15
Password: AwWj0w5cvxrZiONgZ9J5stNVkmxdk39J
URL: http://natas15.natas.labs.overthewire.org

Una vez hayamos accedido a este nivel veremos un panel donde debemos introducir un usuario válido.

También podemos ver el código fuente del sitio web haciendo clic en el enlace View sourcecode que se encuentra resaltado en color azul.

Si analizamos el código, observamos que se muestra el código de cómo se ha creado la tabla users (entre comentarios) la cual contiene un campo username y otro password.

Más abajo podemos observar la consulta SQL que se realiza para comprobar si el usuario existe o no. También podemos observar que la URL esperada debe de recibir por GET la clave debug, es decir, que $_GET["debug"] debe existir.

Para resolver este reto, vamos a aprovechar una vulnerabilidad de la consulta SQL que nos permitirá utilizar fuerza bruta.

Para ello, el equipo de Init0 (ciberseguridad) ha desarrollado el siguiente script en PHP: https://github.com/oddworldng/natas15-php-overthewire

Si analizamos este código desarrollado, podemos diferenciar dos partes:

  1. La primera parte utiliza una lista con todos los caracteres disponibles a-zA-Z0-9 haciendo una consulta utilizando el operador LIKE y la función BINARY de SQL para comprobar los caracteres son parte de la contraseña y cuáles no, con esto optimizamos la búsqueda de la contraseña final.
  2. La segunda parte utiliza los caracteres filtrados en el paso anterior para realizar un ataque de fuerza bruta siguiendo la misma idea de la primera parte utilizada para filtrar.

Podemos ejecutar el script natas15.php con el comando php natas15.php y podremos ver la contraseña para acceder al siguiente nivel.

Checking chars in password ...
Characters filtered: acehijmnpqtwBEHINORW03569
Using brute force to get final password ...
W
Wa
WaI
WaIH
WaIHE
WaIHEa
WaIHEac
WaIHEacj
WaIHEacj6
WaIHEacj63
WaIHEacj63w
WaIHEacj63wn
WaIHEacj63wnN
WaIHEacj63wnNI
WaIHEacj63wnNIB
WaIHEacj63wnNIBR
WaIHEacj63wnNIBRO
WaIHEacj63wnNIBROH
WaIHEacj63wnNIBROHe
WaIHEacj63wnNIBROHeq
WaIHEacj63wnNIBROHeqi
WaIHEacj63wnNIBROHeqi3
WaIHEacj63wnNIBROHeqi3p
WaIHEacj63wnNIBROHeqi3p9
WaIHEacj63wnNIBROHeqi3p9t
WaIHEacj63wnNIBROHeqi3p9t0
WaIHEacj63wnNIBROHeqi3p9t0m
WaIHEacj63wnNIBROHeqi3p9t0m5
WaIHEacj63wnNIBROHeqi3p9t0m5n
WaIHEacj63wnNIBROHeqi3p9t0m5nh
WaIHEacj63wnNIBROHeqi3p9t0m5nhm
WaIHEacj63wnNIBROHeqi3p9t0m5nhmh
Password: WaIHEacj63wnNIBROHeqi3p9t0m5nhmh

La contraseña para acceder a nivel natas 16 es WaIHEacj63wnNIBROHeqi3p9t0m5nhmh

Este reto ha sido resuelto por Init0 (initcero) un equipo red team en Canarias (España).