content top

Script: Publicar comentario de primero en CuantoCabron.com

El siguiente script solo es una prueba de lo que nos permite hacer cURL, para quienes visitan el sitio ¡Cuánto cabrón! sabrán que ser el primero en comentar no tiene relevancia mayor ya que los comentarios aparecen ordenados por votación de los mismos usuarios, aun así es bastante difícil (casi imposible diría yo xD) poder comentar una viñeta de primero y para eso hice este script. Yo probé el script por partes y cada una de ellas funciona, no lo probé en su totalidad para no pasar por troll pero en teoría debería funcionar.

<?php
/* Comentar de primero en CuantoCabron.com
www.BrianUR.info
/*
$ch = curl_init();
$url = "http://www.cuantocabron.com/";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIE, 'TU_COOKIE');
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
$resultado = curl_exec($ch);
$texto1 = explode("<h2><a href=\"", $resultado);
$texto2 = trim($texto1[1]);
$final = explode("\">", $texto2);
//***************************************
if ($final[0] != "http://www.cuantocabron.com/ultimavineta") {
try {
$ch0 = curl_init();
curl_setopt($ch0, CURLOPT_URL, $final[0]);
curl_setopt($ch0, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch0, CURLOPT_COOKIE, 'TU_COOKIE');
curl_setopt($ch0, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
$resultado0 = curl_exec($ch0);
$id_story = explode("id=\"id_story\" value=\"", $resultado0);
$current_page = explode("id=\"current_page\" value=\"", $resultado0);
$id_story1 = trim($id_story[1]);
$current1 = trim($current_page[1]);
$current = explode("\"/>", $current1);
$final1 = explode("\"/>", $id_story1);
$idfinal = $final1[0];
$currentFinal = $current[0];
//***************************************
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, $final[0]);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_COOKIE, 'TU_COOKIE');
curl_setopt($ch1, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
curl_setopt($ch1, CURLOPT_POST, true);
curl_setopt($ch1, CURLOPT_POSTFIELDS, "comment=" . urlencode("Soy el primero :trollface:") . "&id_story=" . urlencode($idfinal) . "&current_page=" . urlencode($currentFinal) . "&token_form=" . urlencode("TU_TOKEN") . "&submit=Enviar+comentario");
curl_exec($ch1);
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
echo ("Comentario publicado :trollface:");
} else {
//echo "<script type=\"text/javascript\">top.location.href = 'cc.php';</script>";
echo "<meta http-equiv=\"Refresh\" content=\"2;url=cc.php\">";
}
?>
Leer mas

Script: Comprobar quién es el dueño de una foto en Facebook con su URL

Un script simple que hice ayer para comprobar quién es el dueño de una foto, en el caso de cuando por ejemplo nos envían la URL de la imagen de tipo http://a5.sphotos.ak.fbcdn.net/hphotos-ak-ash2/24487_1401168904232_1082605132_31212964_123957_n.jpg


<form method="GET">
<input type="text" name="url"/>
<input type="submit" id="Enviar" value="Comprobar"/>
</form>
<?php
/*
Comprobar quién es el dueño de una foto en Facebook con su URL
www.BrianUR.info
*/
if (isset($_GET['url'])) {
$url = $_GET['url'];
$id = explode("_", $url);
$datos = file_get_contents("http://graph.facebook.com/" . $id[2]);
$daticos = json_decode($datos);
if (isset($daticos->link)) {
echo "La foto es de <a href='" . $daticos->link . "'>"
. $daticos->name . "</a>";
} else {
echo "Al parecer el usuario con el nombre " . $daticos->name . " ocultó su perfil para otras personas,</br>" .
" intenta ver el perfil accediendo desde www.facebook.com/profile.php?id=" . $id[2];
}
echo "</br><img src='http://graph.facebook.com/" . $id[2] . "/picture?type=large'/>";
}
?>
Leer mas

Comparar dos imágenes pixel a pixel

Un sencillo método a tener en cuenta para retos de esteganografía:

<?php
$original = imagecreatefromjpeg('1.jpg');
$modified = imagecreatefrompng('2.png');
$size = getimagesize('1.jpg');
$output = imagecreate($size[0], $size[1]);
imagecolorallocate($output, 255, 255, 255);
$cblack = imagecolorexact($output, 0, 0, 0);
for ($a = 0; $a < $size[0]; $a++) {
for ($b = 0; $b < $size[1]; $b++) {
$colororiginal = imagecolorat($original, $a, $b);
$colormodified = imagecolorat($modified, $a, $b);
if ($colororiginal != $colormodified)
imagesetpixel($output, $a, $b, $cblack);
}
}
imagepng($output, 'resultado.png');
?>
Leer mas

PHPCracker: Crackear diferentes tipos de hash con PHP

PHPCracker: Crackear diferentes tipos de hash con PHP

Últimamente resolviendo algunos retos me ha tocado crackear diferentes hash y aunque existen muchos programas para esa labor (como Cain) estos no ofrecen soporte para realizar fuerza bruta a algunos tipos de hash. Por esta razón hice PHPCracker, un sencillo script que permite realizar ataques por fuerza bruta y ataques por diccionario usando PHP.

 

<?php

if (defined('STDIN')) {
        if (count($argv) < 2) {
            echo "#########################################################################\n" .
            "#           PHPCracker UrbaN77 www.RedInfoCol.org  - www.BrianUR.info   #\n" .
            "#########################################################################\n" .
            "# Uso: php phpcracker.php [Modo] [Nombre del hash] [Hash] [Opciones]    #\n" .
            "# --------------------------------------------------------------------- #\n" .
            "# Modo: usa -b hacer un brute force o -d para un ataque por diccionario.#\n" .
            "# Nombre del hash: Por ejemplo md5, sha1 o cual sea el nombre.          #\n" .
            "# Hash: Hash a crackear.                                                #\n" .
            "# Opciones: Estas dependen del modo elegido.                            #\n" .
            "#  - Charset: min para minusculas, may para mayusculas   o all para las #\n" .
            "#             anteriores con numeros y simbolos (Solo para el modo -b). #\n" .
            "#  - Diccionario: nombre del fichero de tu wordlist (Solo para modo -d).#\n" .
            "#########################################################################";
            exit;
        }
        $modo = $argv[1];
        $tipoHash = $argv[2];
        $hash = $argv[3];

        function crackear($hash, $tipoHash, $charset) {
            if ($charset == "min") {
                $desde = 97;
                $hasta = 122;
            } elseif ($charset == "may") {
                $desde = 65;
                $hasta = 90;
            } elseif ($charset == "all") {
                $desde = 33;
                $hasta = 126;
            } else {
                echo "Necesitas especificar el Charset: min, may o all.";
                exit;
            }
			echo "Crackeando...\n";
            for ($i = $desde; $i <= $hasta; $i++) {
                for ($j = $desde; $j <= $hasta; $j++) {
                    for ($k = $desde; $k <= $hasta; $k++) {
                        for ($l = $desde; $l <= $hasta; $l++) {
                            $salida = hash($tipoHash, chr($i) . chr($j) . chr($k) . chr($l));
                            if ($hash == $salida) {
                                echo "Password encontrado: " . chr($i) . chr($j) . chr($k) . chr($l)."\n";
                                exit;
                            }
                        }
                    }
                }
            }
        }

        if ($modo == "-d") {
            $wordlist = $argv[4];
            if (file_exists($wordlist)) {
                $diccionario = file($wordlist);
				echo "Crackeando...\n";
                foreach ($diccionario as $rel) {
                    $salida = hash($tipoHash, $rel);
                    if ($salida == $hash) {
                        echo "El password es: " . $rel;
                        exit;
                    }
                }
            } else {
                echo "El archivo " . $wordlist . " no existe.";
                exit;
            }
        } elseif ($modo == "-b") {
            $charset = $argv[4];
            crackear($hash, $tipoHash, $charset);
        }
        echo "Password no encontrado :/ intenta probando con otro tipo de hash, otro charset o diccionario.";
} else {
    echo("Necesitas correr este script desde la consola.");
}
?>
Leer mas

Enviar datos vía post y get usando cURL y PHP

Continuando con el uso de cURL y PHP veremos la forma de enviar datos ya sea por Post o Get, útil en caso de querer por ejemplo rellenar un formulario de forma automatizada, hay scripts que usan este método para saltar captchas así que las funcionalidades son bastantes.

Enviar datos por Post

Para el envió por Post se hace uso de CURLOPT_POST y CURLOPT_POSTFIELDS. Manos al código:

//Iniciamos cURL.
$ch = curl_init();
//Accedemos a la URL
curl_setopt($ch, CURLOPT_URL, "http://web.com/formulario.php");
//Indicamos que vamos a enviar datos por Post.
curl_setopt ($ch, CURLOPT_POST, true);
//Iniciamos una sesion
curl_setopt($ch, CURLOPT_COOKIE, 'PHPSESSID=cookie;');
//Indicamos que queremos imprimir el resultado
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
//Hacemos uso de un User Agent
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
//Enviamos los datos por post
curl_setopt ($ch, CURLOPT_POSTFIELDS, "codigo=".urlencode($datos));
//Ejecutamos e imprimimos el resultado
echo curl_exec($ch);
Leer mas

Uso de cURL en PHP

cURL es una herramienta para usar en un intérprete de comandos para transferir archivos con sintaxis URL, soporta FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, FILE y LDAP. cURL soporta certificados HTTPS, HTTP POST, HTTP PUT, subidas FTP, Kerberos, subidas mediante formulario HTTP, proxies, cookies, autenticación mediante usuario+contraseña (Basic, DIgest, NTLM y Negotiate para HTTP y kerberos4 para FTP), continuación de transferencia de archivos, tunneling de proxy http y muchas otras prestaciones. De Wikipedia

cURL ofrece miles de usos, normalmente en el ámbito de desarrollo web se usa para trabajar con APIs, extraer información concreta en webs, etc. Manos al código:

//Iniciamos cURL
$ch = curl_init();
//Especificamos en la variable url el sitio al cual nos vamos a conectar
$url = "http://www.brianur.info";
//Accedemos al sitio
curl_setopt($ch,CURLOPT_URL,$url);
// CURLOPT_RETURNTRANSFER se usa para almacenar el valor de curl_exec en una variable, en este caso es false porque queremos que se imprima el resultado en pantalla en vez de almacenarlo en la variable
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
//Opcionalmente en caso de que la web requiera iniciar sesion, se puede hacer uso de CURLOPT_COOKIE
curl_setopt($ch, CURLOPT_COOKIE, 'PHPSESSID=cookie;');
//Como opción podemos indicar un Usear Agent
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
//Ejecutamos y imprimimos
echo curl_exec($ch);
//Opcionalmente cerramos la conexión.
curl_close($ch);

Leer mas

Página 1 de 612345...Última »
content top