nov 06 2010

Facebook ‘hacking’

Category: Linux,PHP,pseudo-hacks,Socialguillem @ 4:05

El ‘hacking’ del título está entre comillas porque realmente no se trata de ninguna cosa muy espectacular. Lo que os quiero mostrar a continuación es un pequeño script en PHP que hice ya hace algún tiempo y que permite obtener la dirección de un álbum de alguien de facebook para poder verlo. Obviamente dicha persona no debe tener restringido el álbum, pues en caso de ser así no se ve nada de nada. Sin embargo, en el caso de que no esté restringido, se pueden ver álbumes completos a los que de otra forma no podríamos acceder. En definitiva no deja de ser un script para ‘deofuscación’ más que un hack.

En el script en si hay que poner tres parámetros:
– el $uid: corresponde al indentificador del usuario del que queréis buscar el álbum
– $from y $to: corresponden a los identificadores de álbum entre los que queremos buscar. Estos dos parámetros son los difíciles de aproximar. Por lo que he podido ver parece que se asignan de forma secuencial a cada álbum que se crea. La mejor forma para aproximar es buscar algún perfil con un Id cercano al que estáis buscando el álbum y que permita ver sus álbumes. Mirad el aid del álbum de dicho perfil y probad con un from y un to entre 500 más abajo y 500 más arriba (por lo menos). Este método sin duda es muy rudimentario, pero funciona. Quizá algún día automatice el script para que haga también una estimación del from y el to, pero eso será más adelante…

//Set User ID here
$uid = 4;
//Album ID to start from. 'Guessing' required...
$from = 1;
//Album ID to finish at. 'Guessing' required...
$to = 500;

$server = gethostbyname( 'www.facebook.com' );

for ( $ii = $from; $ii < $to; $ii++ )
{
sockAccess( $ii );
}

function sockAccess($ii)
{
global $uid;
$page = "album.php?aid=$ii&id=$uid";
global $server;
$errno = '';
$errstr = '';
$fp = 0;
$fp = fsockopen( $server, 80, $errno, $errstr, 30 );
if( $fp === 0 )
die( "Error $errstr ($errno)" );

$out = "GET /$page HTTP/1.1\r\n";
$out .= "Host: $server\r\n";
$out .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1";
$out .= " en-US; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2\n";
$out .= "Connection: Close\r\n\r\n";
f write( $fp, $out );
$content = fgets( $fp );
$code = trim( substr( $content, 9, 4 ) );
f close( $fp );
if( $code != 200 )
echo "Album found!: http://www.facebook.com/album.php?aid=$ii&id=$uid\n";
if( !($ii%10) )
echo "Trying around: $ii\n";
return true;

Etiquetas: , , ,


jun 04 2010

register_globals con mod_suphp

Category: Linux,PHPguillem @ 4:05

Aunque activar register_globals no es para nada una buena idea, sigue habiendo algunos maldi___ scripts por ahí que lo necesitan.

¿Como se hace en PHP5 en una instalación vía mod_suphp?
En la carpeta en cuestión creamos un fichero llamado php.ini con el texto ‘register_globals = 1′ (sin las comillas lógicamente.)

Etiquetas: ,


may 10 2007

Gráficos de todo tipo con PHP

Category: PHPguillem @ 12:13

Hoy, andábamos buscando una clase PHP para crear gráficos y hemos encontrado esta:

Advanced Graphing class

Para mi gusto, la clase es algo ‘pesada’ (en cuanto a tamaño) pero cuando uno consulta las cosas que se pueden hacer, realmente se queda sorprendido. Además, es muy fácil de utilizar. Aprender a crear un gráfico no lleva ni 2 minutos.

Crear un gráfico es tan sencillo como sigue (se pueden crear muchos tipos, no solo pasteles):

$graph = new graph();
$graph->demoData(8,1000,10000);
$graph->setProp("type","pie");
$graph->setProp("showgrid",false);
$graph->setProp("pieangle",56);
$graph->setProp("useval",true);
$graph->graph();
$graph->showGraph("exa15.png");

I el resultado es increible:

exa15.png