Página 1 de 1

Sockets o Peticiones GET/POST

NotaPublicado: 2014-12-19 09:27 @435
por jimr1984
Buenos días, comunidad.

Estoy traduciendo una herramienta hecha en Python: https://github.com/jofpin/fuckshell

Básicamente lo que realiza esta herramientas es realizar búsquedas (peticiones GET,POST) en busca de una lista de archivos.

El contenido de lista.txt es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using python Syntax Highlighting
  1. [  13s.php
  2.    cch.php
  3.    43.php
  4.    54ls.php
  5.    ruy.php
  6.    etc.
  7. ]
  8.  
  9. file = "lista.txt"
  10.  
  11. get   http://www.mipagina.com/13s.php/cch.php/43.php
  12. Post  http://www.mipagina.com/13s.php/cch.php/43.php
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


fwshell.py lo que realiza es buscar si se encuentra una webshell si el código de respuesta es 200, 404, etc.

Estoy pensando realizar la traducción y mejorarla utilizando hilos y sockets.

Ahora no sé si sería mejor utilizar sockets con hilos o simplemente hilos y peticiones normales GET y POST.

Tengo un archivo lista.txt con más de 10.000 nombres de la forma random.php y quería que fuese rápido el proceso optimizar y mejorar el script en Python.

Por favor, necesita saber si es mejor el uso de sockets o no, en este caso. Saludos.


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. # GET::::::::::::::::::::::::::
  2. my $ua = LWP::UserAgent->new;
  3. my $sta = HTTP::Response->new();
  4. $ua->agent("Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)");
  5. my $url = "http://www.Mipagina/$lista";
  6. my $req = HTTP::Request->new(GET => $url);
  7. my $response = $ua->request($req);
  8. my $content = $response->content();
  9. print $response->code();
  10.  
  11.  
  12. # SOCKET::::::::::::::::::::::::::::::::
  13. my $host = "www.Mipagina.com";
  14. my $file = "/"; # el index vamos...
  15. my $port = 80;
  16. my $S = IO::Socket::INET->new
  17. (
  18.         Proto    => "tcp",
  19.         PeerAddr => "$host",
  20.         PeerPort => "$port",
  21. )  or die "cannot connect!";
  22.  
  23. # para flushear nada más escribir en el socket
  24. select($S); $| = 1; select(STDOUT);
  25. $peticion = 'GET /fichero/que/quiero/lala.php HTTP 1.1
  26. HOST: http://www.LAwebQUEsea.com'.\n\n";
  27. print $S $peticion
  28.  
  29. print $S "GET $file HTTP/1.1\nHOST: $host\n\n";
  30. while(<$S>){ print }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4



Aguardo sus comentarios, gracias...

Re: Sockets o Peticiones GET/POST

NotaPublicado: 2014-12-19 09:43 @447
por jimr1984
Rescaté esta parte de una anterior publicación.

De todas maneras, aguardo su comentarios.

"Un HEAD nos dice si un recurso está disponible, devolviendo solo la cabecera HTTP, con la información de ese recurso. O un mensaje de error.

En cambio, con un GET lo que obtenemos es, además de la información devuelta por HEAD, el propio recurso. Y si no nos interesa almacenarlo, pues entonces estamos consumiendo ancho de banda".

Re: Sockets o Peticiones GET/POST

NotaPublicado: 2014-12-19 12:29 @562
por explorer
Pues sí, con HEAD te vale para saber si un recurso está disponible.

Además, la respuesta del HEAD es muy rápida (solo es una cabecera lo que devuelve), así que puedes verificar la existencia de todos los archivos en muy poco tiempo.

Si quieres aumentar la velocidad, y suponiendo que el servidor correo varios hilos, puedes crear varios procesos para repartir la carga. Con LWP::Parallel lo puedes resolver muy rápidamente.

Re: Sockets o Peticiones GET/POST

NotaPublicado: 2014-12-19 12:35 @566
por jimr1984
Muchas gracias, estimado. Entonces, me valdré de LWP::Parallel y HEAD para desarrollar mi script. Saludos.

Re: Sockets o Peticiones GET/POST

NotaPublicado: 2014-12-19 13:26 @601
por jimr1984
Estimado explorer: al descargar LWP::Parallel, dice que el archivo está corrupto. ¿Cómo puedo instalarlo de forma manual? Mi SO es Windows.

C:\Perl64\

Y al ejecutar cpan no puedo:

Set up gcc environment - 4.4.7 20111023 (prerelease) [svn/rev.180339 - mingw-w64/oz]
CPAN.pm panic: Lockfile 'C:\Perl64\cpan\.lock'
reports other host hacktor and other process 716.
Cannot proceed.

¿Sería posible instalar el módulo en Linux? ¿Y luego copiar la librería en la carpeta lib/ en Windows?
Saludos...

Re: Sockets o Peticiones GET/POST

NotaPublicado: 2014-12-19 14:53 @662
por explorer

Re: Sockets o Peticiones GET/POST

NotaPublicado: 2014-12-30 10:23 @474
por jimr1984
Muchas gracias por la ayuda, estimado.

Re: Sockets o Peticiones GET/POST

NotaPublicado: 2015-06-08 16:18 @721
por jimr1984
Buenas tardes. Continuando con este hilo de peticiones GET / POST, por favor,
si me pueden ayudar con una petición POST que incluya estas cabeceras:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Host: http://www.mipaginaweb.com.bo
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://www.mipaginaweb.com.bo/
Content-Length: 55
Cookie: _ga=GA1.3.1559313485.1427978739; cc_hidebar=0; cc_an=1; PHPSESSID=53shgb9mbi9bk5umtpq08pc98mqrltgp; _gat=1; cc_loggedin=0
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Estos datos los extraje utilizando un proxy HTTP Live Headers en el navegador
Es un complemento de Firefox el cual tiene la opción REPLAY O REPETICIÓN.

Lo que trato de hacer es que mi petición se envíe utilizando las cabeceras mencionados arriba en una petición POST.

Saludos...

Re: Sockets o Peticiones GET/POST

NotaPublicado: 2015-06-08 18:34 @815
por explorer
En el documento que hay en tu ordenador (ejecuta perldoc lwpcook), en la sección POST, tienes un ejemplo de cómo se puede hacer.

Haz una prueba, y si tienes problemas nos avisas.

De todas maneras, hay algunos campos en esas cabeceras que son dependientes de la sesión, por lo que cambiarán cada vez que te conectes. Hay además una cookie, que se debería tratar de forma separada, pero bueno.

Quizás con WWW::Mechanize se pueda resolver de forma más cómoda.

Re: Sockets o Peticiones GET/POST

NotaPublicado: 2015-06-29 10:17 @470
por jimr1984
ok, explorer, muchas gracias.