OverTheWire - Natas 7 -> 8 (sin navegador)
August 2022
Información
Las contraseñas cambian cada cierto tiempo, existe la posibilidad de que esta contraseña ya no sea válida
Username: natas8
Password: DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe
URL: http://natas8.natas.labs.overthewire.org
Solución
Primero ejecutamos el comando curl con el parámetro -u
para indicar las credenciales.
curl -u natas8:DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe http://natas8.natas.labs.overthewire.org/
Vemos que debemos ingresar un secreto para obtener la contraseña, y también vemos el código fuente del formulario.
Vamos al código fuente del formulario.
curl -u natas8:DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe http://natas8.natas.labs.overthewire.org/index-source.html
No se puede leer nada, pero esto se puede solucionar con la herramienta html2text
que se puede instala con el comando sudo apt install html2text
.
curl -u natas8:DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe http://natas8.natas.labs.overthewire.org/index-source.html | html2text
Vemos que el código del formulario está escrito en PHP, y realiza una comparación entre nuestro input y un secreto.
El secreto está codificado con varias funciones de PHP.
Abrimos una consola de PHP interactiva para hacer nuestras pruebas.
php -a
Guardamos el secreto en una variable, porque aplicaremos todas las funciones que observamos antes pero al revés.
Guardamos en la variable $out
el resultado de todas las funciones aplicadas de manera inversa sobre el secreto.
// Ingresamos el secreto y obtenemos esa cadena de números y letras
bin2hex(strrev(base64_encode($EL_SECRETO))) -> 3d3d516343746d4d6d6c315669563362
// Ingresamos la cadena de números y letras y obtenemos el secreto
base64_decode(strrev(hex2bin("3d3d516343746d4d6d6c315669563362"))) -> EL_SECRETO
Lo mostramos con print
y obtenemos el secreto.
Volvemos a la página principal, ingresamos el valor del secreto con el parámetro -d
y los valores secret=oubWYf2kBq
y submit
que puede valer cualquier cosa.
curl -u natas8:DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe http://natas8.natas.labs.overthewire.org/ -d 'secret=oubWYf2kBq&submit=hola'
Contraseña
W0mMhUcRRnG8dcghE4qvk3JA9lGt8nDl