Solución al reto stealshop #wgsbd2
En este caso este reto consistía en un sitio web. En la página principal teníamos varios links a distintos productos y un poco más abajo otro enlace dónde decía: mostrar un objecto de forma aleatoria o algo parecido. Lo siento no tengo una captura de pantalla y hablo de memoria :p
Cuando hacíamos click sobre uno de los objetos, nos aparecía algo como la imagen que vemos más arriba.
Cada elemento tenía su propio nombre, ID y descripción. Lo primero que me dio por probar fue ver si podía sacar el valor del ID, el cual tiene toda la pinta de ser un hash.
Y efectivamente, OnlineHashCrack.com me decía:
Como podemos ver el hash es SHA-1 y corresponde al número 9. Probé con algún otro hash y todos eran números: 3, 5, etc.
Otra cosa que importante a tener en cuenta era la URL:
show_item.php?id=XXXXXX
Dónde las Xs son el hash del producto. Lo primero que hice fue calcular el hash de 0 y poner el hash en el parámetro de la URL. Pantalla en blanco. Igual, el producto con ID 0 no existe. Vamos a probar con el 1. Lo mismo. Vamos a probar con uno de los que nos muestra la web para asegurarnos de probar uno que existe… Pantalla en blanco. Pues parece que la página no le gusta que le cambiemos el parámetro ahí por la cara. Huele a que comprueba el referrer de la petición.
Probamos con wget:
wget --referer=http://wargame.securitybydefault.com/b5de9a5b7b562af19300c70a44b76206/index.php http://wargame.securitybydefault.com/b5de9a5b7b562af19300c70a44b76206/show_item.php?id=0ade7c2cf97f75d009975f4d720d1fa6c19f4897
Ahora si tragó. Pues nada vamos a empezar a descargar. Para ello escribí un pequeño script:
#!/usr/bin/env ruby require 'digest/sha1' 1111.times { |id| hash = Digest::SHA1.hexdigest(id.to_s) pp = %x[wget --referer=http://wargame.securitybydefault.com/b5de9a5b7b562af19300c70a44b76206/index.php http://wargame.securitybydefault.com/b5de9a5b7b562af19300c70a44b76206/show_item.php?id=#{hash}] }
Este script lo que hace es ir desde 1 a 1111 y calcula el hash del índice y hace la petición.
¿Por qué 1111 peticiones? Porque en la imagen de este reto aparecía ese número y cuando uno desespera se agarra a un clavo ardiendo :D
Después de que el script terminó de correr, tenemos otro problema, 1111 ficheros. Por suerte la mayoría estaban vacíos, así que:
find ./ -name "show*" -size 0 -exec rm {} \;
Eso nos deja con 25 ficheros. Como no sabía que buscar me puse a abrir ficheros manualmente hasta que me encontré con esto:
Por lo tanto nuestro token es: This_is_th3_flag_of_the_victory
Para los curiosos el ID correspondiente a ese hash es el 22.
Buscar
Entradas Recientes
- Posts
- Reemplazando la bateria del AirTag
- OpenExpo Europe décima edición, 18 de mayo: El Epicentro de la Innovación y la Transformación Digital
- Docker Init
- Kubernetes para profesionales
- Agenda: OpenExpo Europe 2022 llega el 30 de junio en formato presencial
- Libro 'Manual de la Resilencia', de Alejandro Corletti, toda una referencia para la gestión de la seguridad en nuestros sistemas
- Mujeres hackers en ElevenPaths Radio
- Creando certificados X.509 caducados
- Generador de imágenes Docker para infosec