Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: BenRu en 1 Agosto 2008, 21:44 pm



Título: Script en Perl no me arranca
Publicado por: BenRu en 1 Agosto 2008, 21:44 pm
Bueno...tenia que usar sockets para una cosa y pensé en Perl por su facilidad y rendimiento...
El script debe visitar una web una cantidad de veces, metidas ambas por el usuario

Antes de nada, dejo claro que este script no es para hacer algún tipo de DOS o algo parecido. No es para atacar NADA.


Lo hice y todo iba bien, hasta cuando metí los bucles...

Creo que el problema es de las variables..pero no tengo ni idea  :-\


Aquí con la última técnologia, goto  :xD :xD

Código
  1. #!/bin/perl
  2. #Ruben Ruiz "BenRu"
  3.  
  4.  
  5. use LWP::Simple;
  6. $veces = 0;
  7. $cantidad=<STDIN>;  
  8. inicio:
  9. if ($veces <= $cantidad)
  10.  {
  11. print "\n";
  12. print "Direccion: ";
  13. $page=<STDIN>;  
  14. chop $page;
  15. $url = "http://$page";
  16. $veces = $veces + 1;
  17. goto inicio;
  18.  }
  19. else
  20.  {
  21.    exit();
  22.  }


Aqui con un bucle:

Código
  1. #!/bin/perl
  2. #Ruben Ruiz "BenRu"
  3.  
  4. use LWP::Simple;
  5. $veces = 0;
  6. $cantidad=<STDIN>;  
  7. while($veces <= $cantidad)
  8.  {
  9. print "\n";
  10. print "Direccion: ";
  11. $page=<STDIN>;  
  12. $url = "http://$page";
  13. print "$url\n";
  14. $veces = $veces + 1;
  15.  }


El interprete no me muestra ningún error y se ejecuta, pero no arranca.



Título: Re: Script en Perl no me arranca
Publicado por: ^Tifa^ en 1 Agosto 2008, 21:57 pm
Pues no entiendo tu teoria... el script hace justamente lo que pides que haga con bucle o sin el. Que es pedirte primero un numero luego pedirte que insertes una data y la imprime en la salida estandar nada mas.... porque dices que no funcion? a mi me va bien y no tiene nada de error el del bucle tampoco;


#!/usr/bin/perl
use strict;

my $veces = 0;
print STDOUT "Inserta un numero\n";
my $cantidad=<STDIN>; 
chomp $cantidad;
while ($veces <= $cantidad)
{
print "Direccion: ";
chomp (my $page=<STDIN>);   
my $url = "http://$page";
print "$url\n";
$veces = $veces + 1;
}


Porque el uso del modulo LWP::Simple si tu codigo no va dirigo a ser CGI para web?
mejor da uso de use strict, and use warnings para debugear el codigo.


Título: Re: Script en Perl no me arranca
Publicado por: BenRu en 1 Agosto 2008, 22:16 pm
Bueno...son esas cosas que pasan cuando no sabes un lenguaje de programación  :xD

Y por cierto, el code que has puesto no funciona:
-No visita la url.
-Una vez puesta la url, te vuelve a pedir la dirección...





Título: Re: Script en Perl no me arranca
Publicado por: Novlucker en 1 Agosto 2008, 22:20 pm
Y, en que parte del code se supone que dice que se visite la web?  :rolleyes:
La única orden que hay es un print en pantalla  :P

Te recomiendo leer....

http://cpan.uwinnipeg.ca/htdocs/libwww-perl/LWP/UserAgent.html (http://cpan.uwinnipeg.ca/htdocs/libwww-perl/LWP/UserAgent.html)

Saludos  ;)


Título: Re: Script en Perl no me arranca
Publicado por: BenRu en 1 Agosto 2008, 22:25 pm
Y, en que parte del code se supone que dice que se visite la web?  :rolleyes:
La única orden que hay es un print en pantalla  :P

Código
  1. $page=<STDIN>;  
  2. chop $page;
  3. $url = "http://$page";


Título: Re: Script en Perl no me arranca
Publicado por: Novlucker en 1 Agosto 2008, 22:31 pm
Código
  1. $page=<STDIN>;
  2. #Se guarda lo ingresado en la variable page
  3. chop $page;
  4. #Se quita el /n del texto ingresado
  5. $url = "http://$page";
  6. # Se define la variable url como http:// y el texto contenido en page

 :rolleyes:


Título: Re: Script en Perl no me arranca
Publicado por: ^Tifa^ en 1 Agosto 2008, 23:21 pm
Corazon en ninguna parte de tu codigo (que no puse un codigo hecho por mi, solo corregi parte de la sintaxis del tuyo y eso fue lo que repostee  :-*  ) lo unico que hace es imprimir en pantalla. Que definas dentro de una variable esto ::

my $url="http://$pagina"

No implica que cuando esa variable obtenga el valor de otra variable, va a navegarte a la web. $url es solo una variable, y como tal guarda datos no es una funcion ni una aplicacion que se ejecuta solo existe para guardar datos.... Ahora si tu hicieras esto :

Código:
#!/usr/bin/perl
use strict;

my $veces = 0;
print STDOUT "Inserta un numero\n";
my $cantidad=<STDIN>;
chomp $cantidad;
print "Direccion: ";
chomp (my $page=<STDIN>);   
if ( $page ) {
my $url = "http://$page";
$veces = $veces + 1;
for ($veces = 0; $veces < $cantidad; $veces++) {
system("lynx $url");
}
} else {
print STDOUT "Debes insertar algo\n";
}

Que creo que eso es lo que mas o menos andas buscando... y no pretendo ayudar porque aunque digas que no, tu objetivo final es hacer envios de solicitud masivo a cierta web.


Título: Re: Script en Perl no me arranca
Publicado por: BenRu en 1 Agosto 2008, 23:45 pm
A ver, yo no digo que este bien ni que está mal, no se Perl.

Tan solo he puesto un código y he dicho que no me funcionaba.

También digo que antes de hacer el bucle y meter las variables del conteo, funcionaba todo a la perfección...

Citar
y no pretendo ayudar porque aunque digas que no, tu objetivo final es hacer envios de solicitud masivo a cierta web.

Piensas que si mi objetivo es hacer un delito informático iba a postear esto aquí?y con un código tan rudimentario?

No soy tan cutre  :xD

(Perdona que te no devuelva el beso...pero me da mal rollo  ;))

@Novlucker:
http:// + dirección web ($page) = http://www.web.com


Título: Re: Script en Perl no me arranca
Publicado por: Tec-n0x en 6 Agosto 2008, 23:15 pm
Pues como dijeron arriba .. el codigo esta mal y EN NINGUNA PARTE LE HACE GET HACIA LA PAGINA.

Puedes hacerlo con LWP Y HTTP::Request :

Código
  1. #!/usr/bin/perl
  2.  
  3. use LWP::UserAgent;
  4. use HTTP::Request;
  5.  
  6. print "\n\nDame Sitio:\n> ";
  7. $sitio=<STDIN>;
  8. chop($sitio); # Eliminamos el ultimo caracter - IMPORTANTE
  9.  
  10. print "\n\nCuantas Veces:\n> ";
  11. $times=<STDIN>;
  12. chop($times);
  13.  
  14. for($x=0;$x<=$times;$x++) {
  15.  
  16. $ua = LWP::UserAgent->new;
  17. $ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13");
  18. $re = HTTP::Request->new(GET => $sitio);
  19. $response = $ua->request($re);
  20.  
  21. print "\nVisitado: \t$x";
  22.  
  23. }
  24.  

Saludos !


Título: Re: Script en Perl no me arranca
Publicado por: ^Tifa^ en 7 Agosto 2008, 16:17 pm
No he utilizado el modulo HTTP con Perl, asi que desconozco como funcione.

Pero una preguntita, cuando llamas a Mozilla con la funcion agent.. se abre fisicamente Mozilla en el escritorio??? porque de ser asi, seria un problema imaginate que el usuario inserte 50 como contador en el for, se abriran 49 Mozilla en tu escritorio a la vez  :o  :o

Y no podemos basarnos completamente en Mozilla como navegador porque si el usuario no tiene Mozilla instalado??? no se ejecutara el script. deberia moverse mas con Iexplorer


Título: Re: Script en Perl no me arranca
Publicado por: Novlucker en 7 Agosto 2008, 17:28 pm
Con UserAgent defines la cabecera que enviarás en la consulta  :P

Que navegador quieres tener?  :rolleyes:

Saludos


Título: Re: Script en Perl no me arranca
Publicado por: Tec-n0x en 7 Agosto 2008, 19:32 pm
Con UserAgent defines la cabecera que enviarás en la consulta  :P

Que navegador quieres tener?  :rolleyes:

Saludos

Claro x]

Si quieres haces algo en php que guarde el Navegador del que entre .. lo metes en localhost y pones el script 1 vez a ese site.

Revisas el log y vas a ver el User Agent que se define en la variable.

Si pones " hola " verás " hola " pero no se abren ventanas.

Todo es desde consola  :D

Saludos