Сейчас я делаю упражнения по проводам, и я застрял в одном месте, или, точнее говоря, я хотел бы решить lvl, поступая иначе, чем то, что я мог бы найти в Интернете.
Я должен передать пароль команде c с пин-кодом, и в соответствии с этим у меня есть ответ, написанный на stdout (с указанием правильности это или неправильности). Передача выполняется с исправлением первой части и пин-кодом между 0000 и 9999.
Дело в том, что, делая это с помощью строки cmd, это примерно так: echo "my pass" "4-digits pin code" | nc localhost 30002
Тогда у меня есть ответ в зависимости от того, PIN-код правильный или нет.
Что я хотел бы сделать в качестве сценария (возможно, я полностью ошибаюсь с самого первого шага): я проверяю с человеком, что n c может принять запуск сценарий с параметром -e. Поэтому я решил создать сценарий, который будет делать следующее:
Я вызываю локальный хост порта: nc localhost 30002 -e "myScript"
В моем сценарии я хотел бы рекурсивно повторить комбинацию прохода и 4 di git закрепите на stdin, чтобы сервер отвечал правильно или неправильно. Затем я проверяю стандартный вывод (где, как я полагаю, я могу прочитать правильный или неправильный ответ с сервера), чтобы определить, нахожу ли я правильный пин-код.
Просто хочу сказать, я знаю только неправильный ответ, который я могу не знаю, какой может быть правильный ответ.
Вот код, который я пытался построить (не пламенейте, пожалуйста, я новенький :)):
#!/bin/bash
pwd=UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ
#nc localhost 30002
for i in {0001..9999}
do
cat <<< "$pwd $i" #Here I try to simulate a input on stdin
cat 1> /tmp/Frack/password
if ( grep -o "Wrong" { "$(</dev/fd/3)"; } 3<&1 ) #Here I try to check if there's an answer from the server, and if it contains the word "Wrong"
then
continue
else
echo "pass trouvé : $i" > /tmp/Frack/password #If I found the right pin code, I write it within this file (on which I gave the right access to be able to write on it).
break
fi
done
I добавьте пример того, что я должен прочитать в качестве ответа на мой звонок на сервер с неправильным пин-кодом: «Я проверяю пин-код для пользователя bandit25. Пожалуйста, введите пароль для пользователя bandit24 и секретный пин-код на одном через пробел. Неправильно! Введите правильный пин-код. Повторите попытку. "
Спасибо.