• Publicidad

Consulta sobre URL

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Consulta sobre URL

Notapor situ » 2008-04-14 16:30 @729

Los molesto porque estoy intentando terminar un script, el cual lo que hace es buscar en una url la palabra "marcos".

Prueba las siguientes urls:
Código: Seleccionar todo
http://localhost/legajo.php/legajos.txt
http://localhost/legajos.php/legajos.txt

Hasta ahí anda todo, pero me gustaría poder hacer que busque en varios archivos la palabra "marcos"; en este momento está seteado solamente "legajos.txt", pero tengo un archivo el cual dentro contiene el nombre de varios archivos que tendría que buscar esta palabra.
Probé hacer un array leyendo este archivo pero no me funcionó.
Gracias.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use HTTP::Request;
use LWP::UserAgent;

$host='http://localhost/';
$string="marcos";
$archi='legajos.txt';
$pagina1="legajo.php";
$pagina2="legajos.php";

for ($i=1;$i<3;$i++) {
    $cont=pagina.$i;
    chomp $cont;

    $webs=$host.$$cont."$archi";

    my $req=HTTP::Request->new(GET=>$webs);

    my $ua=LWP::UserAgent->new();

    $ua->timeout(30);

    my $response=$ua->request($req);

    if ($response->is_success) {
        if( $response->content =~ /$string/) {
            print "$webs";
        }
    }
}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Última edición por situ el 2008-04-14 17:05 @753, editado 1 vez en total
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Publicidad

Notapor explorer » 2008-04-14 16:57 @748

Humm... ¿qué es lo que hace la función vuln()?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor situ » 2008-04-14 17:05 @754

Perdón, me confundí en el código, ya que subí un mirror al script que tengo en mi trabajo.
Gracias
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor explorer » 2008-04-14 17:09 @756

Bien... ¿Qué hace la función pagina()?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor situ » 2008-04-14 17:13 @759

Lo que hace es generar una variable con el contenido de $pagina.i donde "i" es el número de la variable, en mi caso tengo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$pagina1="legajo.php";
$pagina2="legajos.php";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Dando así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$webs=$host.$$cont."$archi";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

que sería algo como :
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$webs=$hosts.$pagina1."$archi";
o
$webs=$hosts.$pagina2."$archi";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

ya que es un for.
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor explorer » 2008-04-14 18:13 @800

Vaya... ¿y no es más fácil usar un array?

Y, además, el URL que sale de $webs=$hosts.$pagina1."$archi"; es 'http://localhost/legajo.phplegajos.txt'.

Te falta el carácter '/'.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use HTTP::Request;
use LWP::UserAgent;

$host    = 'http://localhost';
$string  = "marcos";
$archi   = 'legajos.txt';
@paginas = qw( legajo.php legajos.php );

for ($i = 0; $i <= @paginas; $i++) {

    $webs = "$host/$paginas[$i]/$archi";

    # ...

}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Item más...
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
foreach $pagina ( @paginas ) {

    $webs = "$host/$pagina/$archi";

    # ...

}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor situ » 2008-04-14 18:15 @802

¡Ah!, muchas gracias.

Consulta: cómo puedo hacer para que la variable $arch sea un array conteniendo lo que tengo dentro de un archivo con nombre "file.txt", ya que en realidad tengo varios archivos donde buscar.

Gracias.
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor kidd » 2008-04-14 18:22 @807

Considerando que tengas un archivo llamado lista_de_archivos.txt y cuyo contenido sea similar a:

Código: Seleccionar todo
file.txt
file2.txt
file3.txt


Entonces podrías usar el siguiente código:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

use warnings;
use strict;
use HTTP::Request;
use LWP::UserAgent;

my $host = 'http://localhost';
my $string = "marcos";

#Lista de paginas en un array, así es fácil agregar más páginas
my @paginas = ("legajo.php","legajos.php");

#Abrimos el archivo con la lista de archivos a leer
open my $FILE, '<', 'lista_de_archivos.txt' or die $!;
my @archivos = <$FILE>;
close $FILE;


#Creamos nuestro objeto LWP
my $ua = LWP::UserAgent->new();
$ua->timeout(30);

#Iteramos en cada archivo
for my $archivo(@archivos){
    chomp $archivo;

    #Iteramos en cada pagina
    for my $pagina(@paginas){

        #Armamos el url
        my $url = join "/", $host, $pagina, $archivo;

        #Creamos un nuevo request
        my $req = HTTP::Request->new(GET=>$url);

        my $response = $ua->request($req);

        if ($response->is_success) {
            if( $response->content =~ /$string/mi ) {
                print "$url\n";
            }
        }

    }

}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Limpié el código bastante, y de una vez te puse para que usaras un array.

Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor situ » 2008-04-14 18:38 @818

Mil gracias por todo.
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor situ » 2008-04-15 09:46 @449

Le agregué para que me guarde el reporte en HTML pero solamente me guarda el primer archivo encontrado y no los demás :S.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

use warnings;
use strict;
use HTTP::Request;
use LWP::UserAgent;

my $host = 'http://localhost';
my $string = "marcos";

#Lista de paginas en un array, así es fácil agregar más páginas
my @paginas = ("legajo.php","legajos.php");

#Abrimos el archivo con la lista de archivos a leer
open my $FILE, '<', 'lista_de_archivos.txt' or die $!;
my @archivos = <$FILE>;
close $FILE;


# Abro el archivo que sera el reporte final
open (F,">> reporte.html");
print F "<html><head>\n";
print F "<meta http-equiv=Content-Type content='text/html;charset=iso-8859-1' />\n";
print F "<title>marcos archivos</title>\n";
print F "</head>\n";
print F "<body>\n";
print F " <table border='0' align=center width=650 cellpadding='0' cellspacing='0' bgcolor=#333333>\n";
print F "  <tr><td bgcolor=#6666ff><font color=#ffffff face=Verdana size=1>Informacion</font></td></tr>\n";
print F "  <tr><td><font color=#ffffff face=Verdana size=1><strong>Host:</strong> $host</font></td></tr>\n";
print F "  <tr><td><font color=#ffffff face=Verdana size=1><strong>String:</strong> $string</font></td></tr>\n";
print F "  <tr><td><font color=#ffffff face=Verdana size=1><strong>Reporte:</strong> reporte.html</font></td></tr>\n";



#Creamos nuestro objeto LWP
my $ua = LWP::UserAgent->new();
$ua->timeout(30);

#Iteramos en cada archivo
for my $archivo(@archivos){
    chomp $archivo;

    #Iteramos en cada pagina
    for my $pagina(@paginas){

        #Armamos el url
        my $url = join "/", $host, $pagina, $archivo;

        #Creamos un nuevo request
        my $req = HTTP::Request->new(GET=>$url);

        my $response = $ua->request($req);

        if ($response->is_success) {
            if( $response->content =~ /$string/mi ) {
 #Cerramos el reporte
print F "  <tr><td bgcolor=#6666ff><font color=#ffffff face=Verdana size=1>archivos:\</font></td></tr>\n";
print F "  <tr><td><font color=#ffffff face=Verdana size=1>$url\n</font></td></tr>\n";
print F "  </table></body></html>\n";
close (F);
            }
        }

    }

}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Saludos
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Siguiente

Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 20 invitados