Hola a todos! Hace poco me pidieron que creara un team en HTB y para ello necesitaba tener una cuenta. Al entrar al sitio vi que para registrarse había que ingresar un «invite code» y me dijo @rollth que es un CTF, es decir, para registrarse, hay que obtener el flag y con eso registrarse.
Resolverlo es facil, simplemente hay que inspeccionar el código fuente de la página
Hay un JS bastante llamativo, el cual se llama «inviteapi.min.js» y al mirarlo en detalle me topé con esto:
Mucho no se entiende, pero casi al final tira palabras claves tales como «Console», «verifyInviteCode», «makeInviteCode», entre otras.. Asique lo que se me ocurrió, fue ejecutar en la consola del navegador «makeInviteCode()» para generar el código que necesito.
Esto me devolvió un 200 con una especie de JSON que tenía este contenido:
1
2 data:"SW4gb3JkZXIgdG8gZ2VuZXJhdGUgdGhlIGludml0ZSBjb2RlLCBtYWtlIGEgUE9TVCByZXF1ZXN0IHRvIC9hcGkvaW52aXRlL2dlbmVyYXRl"
enctype: "BASE64"
Esto me tiró una cadena encodeada con BASE64. Pueden usar la web https://servicios.underc0de.org/sneak.php para saber que quiere decir
Ahora me dice que debo hacer un POST a «/api/invite/generate»
Con Linux tirando un: «curl -XPOST https://hackthebox.eu/api/invite/generate» es suficiente, pero en mi caso que estoy en Windows, utilizo CMDER que es una consola que acepta comandos de Linux
El resultado será este:
Nuevamente es un BASE64, lo volvemos convertir y tendremos nuestro código de invitación
Y al clickear en Sign Up, nos llevará a la página de registro.
NOTA: Algo que noté, es que los cifrados pueden cambiar, la primera vez me salió un ROT13 y para este tutorial me salió BASE64. De igual forma no hace diferencia, se resuelve de la misma forma, solo hay que cambiar el tipo de cifrado.