Luego de casi un mes de esperar a que los de YabbSE arreglen el agujero y no ver ningún movimiento. Y puesto que ya he publicado la vulnerabilidad y que ya estoy cansado de escribir en inglés, y visto que tarda unos dias en salir en Bugtraq y demás sitios me he decidido a publicar la vulnerabilidad aqui por lo menos para que sea una primicia
. No vamos a ser los hispanoparlantes menos que los de la lengua de shakespeare ademas también explicaré algo acerca de para que te pueden servir los hashes extraidos, porque he visto como algunos se despreocupan al pensar que como los hashes están cifrados tampoco pasa nada. Antes de comenzar, decirles que ya este foro está parcheado asi que no malgasten el tiempo probando. De todos modos utilizaré links de este foro pa que se comprenda la idea, espero que el admin no se moleste.Bueno el hueco está en las versiones 1.5.4 y 1.5.5 de YabSE, puede que en alguna anterior tb pero no las he probado todas.
El agujero en si se encuentra en el fichero post.php donde no se comprueba el parametro quote.
Como explotar la vulnerabilidad:
1- Necesitas ser un usuario registrado
2- Entra en cualquier board. ej. Dudas Generales
3- Entra en cualquier mensaje.ej. POSTS MOVIDOS
4- Ahora mira el codigo fuente y busca la cadena "sesc"
sin las comillas este es el session id un numero hex de 32 caracteres ej. 13a478d8aa161c2231e6d3b36b6d19f2
5- Ahora la url te debe quedar parecida a esta.
http://vulnhost/yabbse/index.php?board=1;action=display;threadid=1
6- Cambiala para que se parezca a esto:
http://vulnhost/yabbse//index.php?board=1;sesc=13a478d8aa161c2231e6d3b36b6d19f2;action=post;threadid=1;title=Post+reply;quote=-12)+UNION+SELECT+passwd,null,null,null,null,null,null,null,null+FROM+yabbse_members+where+ID_MEMBER=1/*
donde dice sesc=######## ahi pones el id que obtuviste antes.
y ya está la página en la página que te trae de vuelta verás como en el Asunto aparece.
Re: 53245443543543543543543534
este es el hash de la password del usuario cuyo id pusistes en ID_MEMBER=#
Solución Temporal:
Abrir post.php cerca de la linea 49 verás algo parecido a esto
$quotemsg = $quote;
cambialo por:
if ($quote && !is_numeric($quote) )
{
die('Go out C==|=======>');
}
$quotemsg = $quote;
y ya está.
Bien una vez vista la vulnerabilidad explicarles un poco de que va el tema.
Bien una vez con la hash que puedo hacer.
No se si se habrán dado cuenta pero cuando al loguearte le das a la opción de permanecer logueado el Yabbse lo que hace es ponerte una cookie con tu password doblemente encriptada. La doble encriptación funciona de esta manera. Primero a tu password se le hace un md5 usando como llave el nombre del usuario
esta es la que se guarda en la base de datos y es la que obtienes con este exploit. luego se vuelve a cifrar este md5 usando la llave pwseed que se define en Subs.php y que por defecto es ys.
Bien una vez que tenemos el hash procedemos a hacer el mismo proceso. el hash obtenido lo ciframos con la llave ys y eso nos da la hash de la cookie, como lo hacemos, pues yo utilice el codigo de yabbse. Luego necesitas el ID de ese usuario, si te lo curras un poco navegando por el foro puedes encontrar informacion del ID del usuario ( ¿no lo voy a dar todo hecho no? ) hay muchas páginas donde se muestra el ID de los usuarios.
bien una vez llegados al punto de tener el hash y el id que se hace. Pués te logueas con tu usuario y le dices al Yabbse que te ponga la cookie y luego la cambias del modo que mas rabia te dé. Por ejemplo utilizando el Paros ( muy recomendable este programa de lo mejor que he visto en proxys web ) , Achilles o similar. mirando un poco el codigo del Yabbse puedes encontrar el formato de la cookie ( Aqui tampoco daré muchas facilidades, hay que currar un poco) y cambias tu id por la del usuario y tu hash por la que obtuviste, veras como automagicamente el yabbse te da la bienvenida como el otro usuario. Otra cosa a tener en cuenta si lo haces de esta manera es que tienes que cambiar la cookie siempre porque sino entra a la primera pagina pero luego cuando vuelva a pedir la cookie mandará la tuya de nuevo.
Bueno esto es todo. Espero por lo menos haber aclarado algunas dudas.
También dar las gracias al admin de este foro que ha guardado silencio casi un mes
acerca del exploitSaludos a todos.









Autor


En línea

xDDDDDDD
,saludos










