cURL не возвращает статус 302 после успешного входа на машину Hack the Box ‘Crocodile’

Вопрос или проблема

cURL возвращает статус-код 200 после успешного входа в систему. Обычный код ответа после входа пользователя должен быть 302. Почему я не получаю этот статус-код? Вся информация предоставлена ниже.

#!/usr/bin/env zsh

printf "\nотправка сырого запроса методом: POST ..\n"
curl -X POST \
"http://10.129.1.15/login.php" \
-H '@reqsH.txt' \
-d '@reqsP.txt' \
--compressed -i -s > resp.txt

printf "\nотображение сырого ответа: отфильтрованного ..\n"
grep --color=always -aiEw "((200|302)|server|cookie)|(?(<form.*>|</form>)|войти|имя пользователя|пароль|недействительный|флаг)" resp.txt -A 0

reqsH.txt

POST /login.php HTTP/2
Host: 10.129.1.15
Referer: http://10.129.1.15/
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=o56egk21rt9g72p0nml211pk2u

reqsP.txt

username=admin&password=rKXM59ESxesUFHAd

Я разобрался. Я забыл параметр “Submit” в полезной нагрузке запроса:

Username=admin&Password=rKXM59ESxesUFHAd&Submit=Login

.

Ответ или решение

Ошибка cURL при отображении кода состояния 302 после успешного входа в систему в машине Hack the Box ‘Crocodile’

Введение

При работе с cURL для выполнения запросов к веб-приложениям, пользователи иногда сталкиваются с проблемами, связанными с неадекватным получениемHTTP-кодов состояния. В данной ситуации происходит следующее: после успешного входа в систему cURL возвращает код состояния 200, тогда как ожидается код 302. Разберем причины этого поведения и предоставим рекомендации по его исправлению.

Причина проблемы

Основная причина, по которой вы не получаете ожидаемый код состояния 302, заключается в недостаточности представленных данных в запросе. Как показывает практика, большинство форм для входа в систему требуют определенных параметров, которые указывают серверу на то, что запрос должен быть обработан как успешный вход. В вашем изначальном запросе отсутствовал необходимый параметр "Submit", который обычно обозначает завершение процесса входа.

Вы использовали следующий код для передачи данных в reqsP.txt:

username=admin&password=rKXM59ESxesUFHAd

Однако для успешной аутентификации необходимо добавить параметр "Submit":

username=admin&password=rKXM59ESxesUFHAd&Submit=Login

Рекомендации по исправлению

Для исправления данной проблемы, выполните следующие шаги:

  1. Обновите запрос: Добавьте недостающий параметр "Submit" в файл данных reqsP.txt. Ваш новый запрос должен выглядеть так:

    username=admin&password=rKXM59ESxesUFHAd&Submit=Login
  2. Проверьте заголовки: Убедитесь, что все необходимые заголовки указаны корректно. В вашем примере заголовок Cookie может потребовать обновления после успешного входа, если сессия изменяется.

  3. Обратите внимание на редиректы: Если вы ожидаете, что после успешного входа пользователь будет перенаправлен на другую страницу, вам нужно убедиться, что cURL следует за редиректами. Добавьте флаг -L к вашему запросу:

    curl -X POST "http://10.129.1.15/login.php" -H '@reqsH.txt' -d '@reqsP.txt' --compressed -i -s -L > resp.txt
  4. Логирование: Используйте параметр -v для включения режима отладки cURL, чтобы увидеть, какие именно запросы и ответы обрабатываются. Это поможет выявить любые проблемы на этапе передачи данных.

Заключение

Проблема с получением кода состояния 200 вместо 302 могла быть вызвана недостающими параметрами в запросе на вход. Убедитесь, что вы передаете все необходимые данные, такие как "Submit", и используйте флаг для обработки редиректов при работе с cURL. Следуя этим рекомендациям, вы сможете успешно решить проблему и получать ожидаемый ответ от сервера.

Помните, точная передача параметров и внимание к деталям в запросах — это ключ к успешной аутентификации и взаимодействию с веб-приложениями.

Оцените материал
Добавить комментарий

Капча загружается...