Voy a escribir algunas soluciones a los retos del pasado CTF organizado por la gente de SMP.
Para mas información sobre el reto, por favor lee la entrada anterior.
Para mas información sobre el reto, por favor lee la entrada anterior.
[smpChallenge - 1]

En este nivel nos daban algunos datos y un procedimiento, con ayuda de astro pudimos encontrar una ecuación válida para el procedimiento y generar un pequeño script:
u@h:w$cat n.py
import sys
a=int(sys.argv[1])
r=int(sys.argv[2])
b=a+1
c=2*a+1
d=a*b*c
e=d/6
f=r*a
resp=e+f+1
print f
print resp
u@h:w$
Este script (el original creado en el momento de angustia :P) recibe dos valores como argumentos y genera el número de la secuencia que buscamos. En el código fuente de la página encontrábamos la información que el algoritmo cambiaba valores después de un tiempo, entonces la tarea era ejecutar algo rápido para que los valores funcionaran en ese rango de tiempo.
[smpChallenge - 2]

:set shell=/bin/bash
:!shell
Una vez en el sistema observamos todos los archivos posibles y tratamos de recuperar la integridad de unos archivos .swp que estaban generados en el home del usuario, pero finalmente ejecutamos el siguiente comando (un poco desesperados):




[smpChallenge - 4]

Al cargar la página aparecía un formulario donde podíamos ingresar cualquier cosa y el nos devolvía el mismo nombre (un escenario para XSS, pero no permitia ningún tipo de explotación), pero si ingresábamos el nombre Administrator encontrábamos un letrero de DENEGADO, por lo que nos insinuaban que este nombre de usuario tenia algo que ver. Después de intentar cosas como Xss, SSI, Xpath, sql, pensar etc, decidimos hacer la misma petición pero usando el método POST, ya que siempre que hacíamos click en el botón del formulario enviaba los datos por GET.
Cuando lo hicimos por POST no paso nada, pero volvimos a intentar un par de veces y obtuvimos un resultado diferente.

Este texto era base64 y producía una imagen donde se encontraban las respuestas (la bandera y el ID). Después de chequear un poco el nivel nos dimos cuenta que el proceso era aleatorio, algunas consultas con método POST daban resultado y otras no, así que si alguien paso de largo y no probó varias veces el envió de datos, seguramente no pudo pasar el nivel.

[smpChallenge - 12]



Al lado izquierdo se puede observar la respuesta correspondiente a la bandera para superar este nivel.

[smpChallenge - 13]

Lo primero que hicimos fue intentar buscar en Internet texto que correspondiera con el texto que aparecía en el reto y el resultado fue:

Aclaro que este wargame tenia algo diferente y era que para pasar un reto se tenían que tener 2 cosas, una era la bandera (una cadena de texto larga con una frase cualquiera) y el identificado del reto, casi siempre un código de 8 dígitos hexadecimales, por lo tanto el ejercicio era doble, a veces era sencillo encontrar el ID oculto en el código fuente de las páginas, pero a veces era mas complicado.
En este reto el ID no aparecía por ningún lado hasta que uno de los miembros del equipo dio con el resultado

Con estos dos datos pudimos pasar el reto.

Algunas otras soluciones se pueden encontrar en SinfoCol o ingresando "smpCTF writeups" en tu buscador favorito. ;)
Saludos y hasta la próxima.
No hay comentarios:
Publicar un comentario