miércoles 2 de diciembre de 2009

Orientación del PHP al PenTest - curl() [Tuto I]

Hoy voy a hablar de la funcion Curl() de PHP, por el momento lo haremos todo con PHP por el hecho de ser mas comercial que otros lenguajes que contienen esta funcion.


Esta funcion no muchos conocen, se omite muchas veces en el momento de enseñar lenguajes pero con esta se nos facilita mucho lo que es ataque por headers y las descargas que haciamos por headers la podriamos hacer en menos lineas...


Ahora si a la práctica que es lo que nos gusta a todos...

En primera vamos a crear algo simple pero previo les voy a enseñar las funciones mas básicas...


curl_init --> es la funcion que se usa para hacer conexión básica a una direccion web.

curl_opt --> Opt viende de option esta es la funcion que mas trabaja con esto le decimos que opcion de curl queremos que se haga.

curl_exec --> ejecutas el script mejor dicho hace que el curl funcione...(en resumen)

curl_close --> Cierra el Curl, lo termina...


Ahora si miren en primer lugar siempre hay que poner algo como la url que queremos...


<?php

$web = "seguridadblanca.org";

?>


una ves que tenemos eso ya el resto es funciones de curl... les daré el codigo para llamar una web pero despues les explicaré el code...



<?php

$web = "seguridadblanca.org";

$cu = curl_init($web);

curl_setopt($cu, CURLOPT_RETURNTRANSFER, true);

$cu_call = curl_exec($cu);

curl_close($cu);

echo $cu_call;

?>


Listo ahora la primera linea ya vimos para que sirve ahora la segunda...fácil solo empieza la conexion es como si le asignaramos una cookie a la navegación... ahora en el caso de la terceya ya le estamos dando las opciones a hacer, le decimos que a nuestra conexion le haga un returntransfer es decir que devuelva los packetes necesarios y eso que sea 1 es decir que sea true o verdadero.

La cuarta línea pues lo unico que hace es darle un nombre a la ejecución dice ahora ejecuten, es como nuestro F5, ahora si luego ya solo mostramos y cerramos, como se habran dado cuenta es como un socket pero mas fácil de usar nuestro code con sockets necesitaba mas code y eso que ahora hemos hecho un code simple entonces no hay mucha diferencia pero podemos hacer cosas mas utiles...

tenemos para elegir...

CURLOPT_USERAGENT
CURLOPT_COOKIE

Miren como nos asignamos una navegada bien chevere, digamos para tener de referer milw0rm:


$ch = curl_init();
//options
curl_setopt($ch, CURLOPT_URL, "/index.html");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_REFERER, "http://www.milw0rm.com");
curl_setopt($ch, CURLOPT_USERAGENT, "Firefox-beta");

// Se obtiene la URL indicada
curl_exec($ch);

// Se cierra el recurso CURL y se liberan los recursos del sistema
curl_close($ch);


Como ven hemos hecho una conexion rápida sin mostrar nada especial y sin usar tantas variables de especificación sin embargo nos hemos ahorrado algo como:


$cabecera = "GET /web/index.php HTTP/1.1\r\n";
$cabecera .= "Host: host.com\r\n";
$cabecera .= "User-Agent: firefox-beta\r\n";
$cabecera .= "Referer: milw0rm.com\r\n";
$cabecera .= "Connection: Close\r\n\r\n";


como ven con el curl todo es mas simple, yo se que el tuto es un poco confuso sin embargo he intentado explicarme de la mejor manera, es solo un tuto muy básico la proxima semana haré otro que será de como hacer post de cosas para explotar bugs de flooding en correos y visitas...


saludos
Dr.White

3 comentarios:

Anónimo dijo...

Los que quiere enviar por el metodo post aqui les dejo un pequeño code

aqui tienes el link

http://img690.imageshack.us/img690/7752/codigop.jpg

lo puse como imagen ya q blogger no permite poner codigo php.

sagagen dijo...
Un administrador del blog ha eliminado esta entrada.
cainx dijo...
Un administrador del blog ha eliminado esta entrada.