El siguiente código perl, es un script sencillo que realiza peticiones de forma automática a las urls contenidas en el fichero ‘blacklist.txt’ con el objetivo de determinar si el Proxy o cualquier otro servidor de filtrado permite el acceso (‘permitidos.txt’) o lo deniega (‘denegados.txt’) o simplemente no llega a determinada url (‘inaccesibles.txt’).
Ideal para realizar una pequeña auditoría de la permisividad de navegación a ciertas urls que deberían estar bloqueadas en listas negras o blacklists.
#!/usr/bin/perl -w
use strict;
use warnings;
use LWP::Simple;
use LWP::UserAgent;
use CGI::Carp qw(fatalsToBrowser);
use HTTP::Request;
# Construye el navegador
my $browser = LWP::UserAgent->new;
$browser->env_proxy; # Utiliza la variable HTTP_PROXY
$browser->agent("Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)");
# abre/crea ficheros
open(FILE_R,"blacklist.txt");
open(PERMITIDOS,'>permitidos.txt');
open(DENEGADOS,'>denegados.txt');
open(INACCESIBLES,'>inaccesibles.txt');
# mensajes desde el proxy -> si en su lugar se desea buscar la cadena en el content
my $inaccesible = "The host was not found";
my $denegado = "The ISA Server denied the specified Uniform Resource Locator";
foreach my $url (
{
chop($url);
my $req = HTTP::Request->new(GET => $url);
my $response = $browser->request($req);
my $estado = $response->status_line;
my $content = $response->content();
print "$estado\n";
#print $content;
if($estado =~ m/$denegado/i) {
print DENEGADOS "$url\n";
}
if($estado =~ m/200/i) {
print PERMITIDOS "$url\n";
}
if($estado =~ m/$inaccesible/i) {
print INACCESIBLES "$url\n";
}
}
close FILE_R;
close PERMITIDOS;
close DENEGADOS;
close INACCESIBLES;
Extraído de http://unlugarsinfin.blogspot.es
Comentarios
Publicar un comentario