Задача об анализе ответа сервера
Задача подойдет начинающим специалистам по информационной безопасности, а также всем, кто любит CTF-турниры или только готовится к участию в этих соревнованиях.

Условие
На веб-сервере спрятан флаг. Отправьте правильный запрос, чтобы получить к нему доступ. Будьте внимательны при анализе ответа.
Задача
Найдите флаг — строку в формате slcctf{}.
Чтобы выполнить задание, перейдите на страницу http://attention.slcctf.fun/.
Решение
Переходим на страницу http://attention.slcctf.fun/. Обращаем внимание, что кнопка Get Secret не работает.
Открываем исходный код страницы:
Видим, что для кнопки установлено свойство disabled. В свойствах формы видим, что при нажатии кнопки должен выполняться POST-запрос по пути /get_data.
Отправляем запрос с помощью curl:
curl -X POST -v http://attention.slcctf.fun/get_data
Получаем ответ:
* Trying 87.228.19.78:80...
* Connected to attention.slcctf.fun (87.228.19.78) port 80 (#0)
> POST /get_data HTTP/1.1
> Host: attention.slcctf.fun
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: nginx
< Date: Wed, 09 Apr 2025 07:34:38 GMT
< Content-Type: text/html; charset=utf-8
< Content-Length: 951
< Connection: keep-alive
< Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmbGFnIjoic2xjY3Rme2NvbWljcy05N2IxNzhhMTZjNjl9In0.iguC4KnTutFX6QvQ77bletGOUfQwKwteyoza4YNZ4LQ
<
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Get Secret</title>
<style>
body {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
font-family: Arial, sans-serif;
}
h2 {
margin-bottom: 20px;
}
.button {
padding: 10px 20px;
font-size: 16px;
color: white;
background-color: gray;
border: none;
border-radius: 5px;
cursor: not-allowed;
}
</style>
</head>
<body>
<h2>Get Your Secret</h2>
<h4> </h4>
<form action="/get_data" method="POST">
<button type="submit" class="button" disabled>Get Secret</button>
</form>
</body>
* Connection #0 to host attention.slcctf.fun left intact
В заголовке Authorization видим токен:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmbGFnIjoic2xjY3Rme2NvbWljcy05N2IxNzhhMTZjNjl9In0.iguC4KnTutFX6QvQ77bletGOUfQwKwteyoza4YNZ4LQ
Декодируем полученный jwt-токен, например, с помощью https://jwt.io:
В payload видим флаг: slcctf{comics-97b178a16c69}
Готово! Флаг найден.