FlashCodeAnalytic

Posted on 9:27 by Xianur0

Basado en Flare para decompilar:

Código:

  
<html><title> Reporte FlashCodeAnalytic v0.1</title><BODY text=#006600><style type="text/css"><!--body {background-color: #000000;background-image: url(http://img201.imageshack.us/img201/1575/cobrafrontcopypk9.jpg);background-repeat: repeat-y;margin-left: 0px;margin-top: 0px;}
-->
</style><center><h1>Reporte FlashCodeAnalytic v0.1 By Xianur0</h1><br><br><br><script type="text/Javascript">function expandcollapse (postid) { whichpost = document.getElementById(postid);if (whichpost.className=="postshown") { whichpost.className="posthidden"; } else { whichpost.className="postshown"; } }</script><style>.posthidden {display:none} .postshown {display:inline}</style>

<?php
//Binario del Flare:
$flare = 'flare';
//Fin de la configuracion...
function tabla($mensaje,$linea, $contenido, $numero) {
print '<br><table border="1">
<tr>
<th>'.$mensaje.'</th>
</tr>
<tr>
<td>En la Linea: '.$linea.'</td>
</tr>
</table>
<a href="javascript:expandcollapse('.$numero.')"> Mostrar/Ocultar Codigo</a><br><span class="posthidden" id="'.$numero.'"> <br/><table height=1 cellSpacing=0 cellPadding=5 width="100%" bgColor=#FF0000 borderColor=#FF0000 border=1><tr><th>'.$contenido.'</th></tr></table></span><br><br>';
}


$name = explode(".", $_GET['file']);
$n = count($name)-1;
if($name[$n] == "swf" && file_exists($_GET['file'])) decompilar();
else die('Archivo Invalido!d');

function decompilar() {
print system('./'.$flare.' '.$_GET['file']);
analizar();
}

function analizar() {
$decompiled = eregi_replace('.swf','.flr',$_GET['file']);
$archivo = file($decompiled);
$numero = 0;
foreach($archivo as $n=>$linea) {
$i = $n+1;
switch(true) {
case eregi('getURL\(', $linea):
tabla("<br>\nAcceso de datos por URL (getURL):", $i, htmlentities($linea), $numero++);
break;
case eregi('new XMLSocket\(', $linea):
tabla("<br>\nDeclaracion de Socket:",$i, htmlentities($linea), $numero++);
break;
case eregi('sendAndLoad\(', $linea):
tabla("<br>\nEnvio de Datos Detectado (sendAndLoad):",$i, htmlentities($linea), $numero++);
break;
case eregi('\.send\(', $linea):
tabla("<br>\nEnvio de Datos Detectado [.send()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('sendToURL\(', $linea):
tabla("<br>\nEnvio de Datos Detectado (sendToURL):",$i, htmlentities($linea), $numero++);
break;
case eregi('\.load\(', $linea):
tabla("<br>\nCarga de Datos Externos Detectado [.load()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('\.upload\(', $linea):
tabla("<br>\nUpload Detectado [.upload()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('\.download\(', $linea):
tabla("<br>\nDescarga de Datos Detectado [.download()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('ExternalInterface.call\(', $linea):
tabla("<br>\nLlamada a datos Externos Detectada [ExternalInterface.call()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('loadPolicyFile\(', $linea):
tabla("<br>\nCarga del Policy [loadPolicyFile()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('addRequestHeader\(', $linea):
tabla("<br>\nDefinicion de Header [addRequestHeader()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('loadVariables\(', $linea):
tabla("<br>\nCarga de Datos Externos Detectado [loadVariables()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('loadMovie\(', $linea):
tabla("<br>\nCarga de Datos Externos Detectado [loadMovie()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('loadMovieNum\(', $linea):
tabla("<br>\nCarga de Datos Externos Detectado [loadMovieNum()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('loadScrollContent\(', $linea):
tabla("<br>\nCarga de Datos Externos Detectado [loadScrollContent()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('loadSound\(', $linea):
tabla("<br>\nCarga de Datos Externos Detectado [loadSound()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('new NetStream\(', $linea):
tabla("<br>\nDefinicion de NetStream Detectada:",$i, htmlentities($linea), $numero++);
break;
}
}
}
?>




Detecta:
  • Acceso de datos por URL (getURL)
  • Declaracion de Socket
  • Envio de Datos (sendAndLoad)
  • Envio de Datos [.send()]
  • Envio de Datos (sendToURL)
  • Carga de Datos Externos [.load()]
  • Upload [.upload()]
  • Descarga de Datos [.download()]
  • Llamada a datos Externos [ExternalInterface.call()]
  • Carga del Policy [loadPolicyFile()]
  • Definicion de Header [addRequestHeader()]
  • Carga de Datos Externos [loadVariables()]
  • Carga de Datos Externos [loadMovie()]
  • Carga de Datos Externos [loadMovieNum()]
  • Carga de Datos Externos [loadScrollContent()]
  • Carga de Datos Externos [loadSound()]
  • Definicion de NetStream

Mirrors flare:
DOS/Windows binary: flare06doswin.zip
Mac OS X binary: flare06mac.tgz
Linux x86 binary: flare06linux.tgz
Linux x86 64-bit binary: flare06linux64.tgz
Solaris x86 binary: flare06solaris.tgz

Nota: Descompriman el paquete del flare y copien el binario a la carpeta donde esta el archivo php de arriba, y dependiendo del sistema que usen coloquen en la configuracion del php (debajo del: "<?php") el nombre del binario...
[Lab de Contra-Seguridad Web Mitm]

4 comentarios:

Anónimo dijo...

Disculpa, eres el autor de un exploit de SMF, si no he entedido mal el codigo :P. pero sinceramente no se como usarlo, podrías enviarme instrucciones? XDDD

axeldor[at]ono.com

Dely dijo...

Hola
Disculpa si ago una pregunta fuera del tema

ami me gustaria saber que codigo necesito para crear el rectangulo que tu isistes lo que pasa que quiero poner una pendejada en mi blog pero si pongo el codigo a la hora de guardar de integra en el codigo de la pagina y yo lo que quiero es que se vea el codigo no el trabajo ya echo te agradeceria que me dijeras regreso en un rato haver si hay respuesta discula las molestias

Xianur0 dijo...

http://bloggerlandia.blogspot.com/2006/11/cuadros-de-texto-incrustados-en.html