diff --git a/networking/templates/chapters/http.html b/networking/templates/chapters/http.html new file mode 100644 index 0000000..73f1788 --- /dev/null +++ b/networking/templates/chapters/http.html @@ -0,0 +1,124 @@ +{% extends "chapter.html" %} +{% set ace_modes = ["sh"] %} +{% block chapter %} +
Дедлайн — ?? ??, 23:59 МСК.
+ +Подключитесь к VPN и займите ip {{ variant.student_ip }} в сети /24
+ +В этой сети есть 2 http сервера. Найдите их.
+ + {{ checkpoint(tasks.found_simple1) }} + + {{ checkpoint(tasks.found_non80) }} + + {{ checkpoint(tasks.found_ips) }} + {% if tasks.found_simple1.is_solved and tasks.found_non80.is_solved %} + {% if not tasks.found_ips %} +Укажите айпи обоих серверов в формате 1.2.3.4:80, 1.2.3.5:XXXX.
+ Если для решения этого задания вам пришлось открыть страницу в браузере, то ваш браузер отправил серверу + много метаинформации чтобы он смог подготовить для вас ответ. В том числе заголовок User-Agent. +
+ ++ Хоть замена User-Agent не поможет вам сохранить приватность, мы просим вас отправить на сервер {{ variant.change_ua_ip }} запрос в котором + сказано что вы используете браузер AbobaBrowser версии 1.3.3.7 +
+ + + {{ checkpoint(tasks.change_ua) }} + +
+ Кроме User-Agent существует очень много общепринятых заголовков которыми умеют пользоваться почти
+ все браузеры. Например Cookie.
+
+ HTTP не имеет состояния, и сервер не может понять что два разных запроса сделал один и тот же клиент. + Поэтому Cookie файлы используются веб сайтами чтобы запомнить, что это именно вы заходите на веб сайт. + В том числе, используются для того чтобы запомнить вас после того как вы авторизовались. +
+ ++ Например, как веб сайт {{ variant.bad_auth_ip }}:80 который использует Cookies для того чтобы пометить - + являетесь ли вы админом или нет. Но делает он это очень плохо. Ваша задача взломать его. +
+ + {{ checkpoint(tasks.bad_auth) }} + ++ После того как вы выполните это задание, вам не составит труда решить + ещё одно задание которое расположено на {{ variant.big_file_ip }}:80. По лучшим традициям CTF, вам нужно сдать флаг, + который следует формату CTITMO{........} +
+ ++ Сервер отдает вам файл который склеен из большого количества нулей, ZIP архива и большого количества мусора. +
++ Вам стоит использовать один специальный заголовок. +
++ Напоминание: Из курса Алгоритмов и Структур Данных вы узнали о том что такое двоичный поиск. + Используйте его вместе с заголовком Range + чтобы получить только ZIP архив. +
++ Вы наверняка уже поняли, но мы забыли упомянуть, что HTTP это протокол который работает по TCP. И он вполне человекочитаем. + Поэтому ваша следующая задача - сделать HTTP запрос руками на сервер {{ variant.hand_made_ip }}:80 +
+ + {{ checkpoint(tasks.hand_made_ip) }} + ++ Теперь когда мы познакомились с HTTP и тем как делать простейшие запросы, вам предстоит познакомиться с буквами HT в этой аббревиатуре. + Они обозначают Hypertext. +
+ ++ Hypertext говорит что данные которые вам вернут будут иметь гиперссылки. Их суть - предоставить возможность с помощью + простого клика перемещаться по нескольким страницам которые есть на веб сервере. +
+ ++ На курсе Java-Advanced вам давали задание написать Web Crawler который бы ходил по веб сайту и собирал все страницы вебсайта. +
+ ++ Ваша задача - либо доработать его, либо написать новый чтобы обойти веб сайт который располагается на {{ variant.crawler_ip }}. +
+ + {{ checkpoint(tasks.crawler) }} + + +{% endblock %}