-
Notifications
You must be signed in to change notification settings - Fork 3
Initial HTML #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Initial HTML #4
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,124 @@ | ||
| {% extends "chapter.html" %} | ||
| {% set ace_modes = ["sh"] %} | ||
| {% block chapter %} | ||
| <p>Дедлайн — <strong>?? ??</strong>, 23:59 МСК.</p> | ||
|
|
||
| <p>Подключитесь к VPN и займите ip {{ variant.student_ip }} в сети /24</p> | ||
|
|
||
| <h3>Часть 1. Пользуемся HTTP</h3> | ||
|
|
||
| <p>В этой сети есть 2 http сервера. Найдите их. </p> | ||
|
|
||
| {{ 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 %} | ||
| <p>Укажите айпи обоих серверов в формате <code>1.2.3.4:80, 1.2.3.5:XXXX</code>.</p> | ||
| {{ render_form(forms.found_ips) }} | ||
| {% endif %} | ||
| {% endif %} | ||
|
|
||
| <h3>Часть 2. Изучаем заголовки</h3> | ||
|
|
||
| <p> | ||
| Если для решения этого задания вам пришлось открыть страницу в браузере, то ваш браузер отправил серверу | ||
| много метаинформации чтобы он смог подготовить для вас ответ. В том числе заголовок <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent">User-Agent.</a> | ||
| </p> | ||
|
|
||
| <p> | ||
| Хоть замена User-Agent не поможет вам сохранить приватность, мы просим вас отправить на сервер {{ variant.change_ua_ip }} запрос в котором | ||
| сказано что вы используете браузер AbobaBrowser версии 1.3.3.7 | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Идея норм, но это недостаточно однозначно говорит, какой UA должен быть
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Достаточно однозначно |
||
| </p> | ||
|
|
||
|
|
||
| {{ checkpoint(tasks.change_ua) }} | ||
|
|
||
| <p> | ||
| Кроме <code>User-Agent</code> существует очень много общепринятых заголовков которыми умеют пользоваться почти | ||
| все браузеры. Например <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cookie">Cookie</a>. | ||
| </p> | ||
|
|
||
| <p> | ||
| HTTP не имеет состояния, и сервер не может понять что два разных запроса сделал один и тот же клиент. | ||
| Поэтому Cookie файлы используются веб сайтами чтобы запомнить, что это именно вы заходите на веб сайт. | ||
| В том числе, используются для того чтобы запомнить вас после того как вы авторизовались. | ||
| </p> | ||
|
|
||
| <p> | ||
| Например, как веб сайт {{ variant.bad_auth_ip }}:80 который использует Cookies для того чтобы пометить - | ||
| являетесь ли вы админом или нет. Но делает он это очень плохо. Ваша задача взломать его. | ||
| </p> | ||
|
|
||
| {{ checkpoint(tasks.bad_auth) }} | ||
|
|
||
| <p> | ||
| После того как вы выполните это задание, вам не составит труда решить | ||
| ещё одно задание которое расположено на {{ variant.big_file_ip }}:80. По лучшим традициям CTF, вам нужно сдать флаг, | ||
| который следует формату CTITMO{........} | ||
| </p> | ||
|
|
||
| <details> | ||
| <summary>Подсказка 1</summary> | ||
| <p> | ||
| Сервер отдает вам файл который склеен из большого количества нулей, ZIP архива и большого количества мусора. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Тут надо тоже будет рейтлимиты вкручивать посильнее. Могу наверное поделиться точно таким же заданием с лимитом в 50 КБ/с |
||
| </p> | ||
| </details> | ||
|
|
||
| <details> | ||
| <summary>Подсказка 2</summary> | ||
| <p> | ||
| Вам стоит использовать один специальный заголовок. | ||
| </p> | ||
| </details> | ||
|
|
||
| <details> | ||
| <summary>Подсказка 3</summary> | ||
| <p> | ||
| Напоминание: Из курса Алгоритмов и Структур Данных вы узнали о том что такое двоичный поиск. | ||
| Используйте его вместе с заголовком <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range">Range</a> | ||
| чтобы получить только ZIP архив. | ||
| </p> | ||
| </details> | ||
|
|
||
| {% if not tasks.big_file.is_solved %} | ||
| {{ render_form(forms.big_file) }} | ||
| {% endif %} | ||
|
|
||
|
|
||
|
|
||
| <h3>Часть 3. HTTP на уровне TCP</h3> | ||
|
|
||
| <p> | ||
| Вы наверняка уже поняли, но мы забыли упомянуть, что HTTP это протокол который работает по TCP. И он вполне человекочитаем. | ||
| Поэтому ваша следующая задача - сделать HTTP запрос руками на сервер {{ variant.hand_made_ip }}:80 | ||
| </p> | ||
|
|
||
| {{ checkpoint(tasks.hand_made_ip) }} | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. А вот тут делиться нечем, но идея норм
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Некоторые идеи были в гуглодоке) |
||
|
|
||
| <h3>Часть 4. Прикладное использование HTTP</h3> | ||
|
|
||
| <p> | ||
| Теперь когда мы познакомились с HTTP и тем как делать простейшие запросы, вам предстоит познакомиться с буквами HT в этой аббревиатуре. | ||
| Они обозначают Hypertext. | ||
| </p> | ||
|
|
||
| <p> | ||
| Hypertext говорит что данные которые вам вернут будут иметь гиперссылки. Их суть - предоставить возможность с помощью | ||
| простого клика перемещаться по нескольким страницам которые есть на веб сервере. | ||
| </p> | ||
|
|
||
| <p> | ||
| На курсе Java-Advanced вам давали задание написать Web Crawler который бы ходил по веб сайту и собирал все страницы вебсайта. | ||
| </p> | ||
|
|
||
| <p> | ||
| Ваша задача - либо доработать его, либо написать новый чтобы обойти веб сайт который располагается на {{ variant.crawler_ip }}. | ||
| </p> | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Уф. Не уверен, нужен ли yet another parser course, но мб
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Это кажется даже обычный curl умеет |
||
|
|
||
| {{ checkpoint(tasks.crawler) }} | ||
|
|
||
|
|
||
| {% endblock %} | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ты уверен, что ты готов к паре десятков nmap over openvpn? у меня там ядер-то не оч много
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Можно в целом шейпить.
Проверить что порт открыт это один пакет