Привет всем участникам HackerU CTF!
Мы подготовили разбор заданий для того, чтобы участники, не решившие всех задач, могли научиться чему-то новому и понять, как нужно было действовать.
Check In
Описание:
CTF начался!
Это задание нужно, чтобы посчитать всех взявшихся за решение задач. Удачи именно тебе!
Флаг ты найдешь в нашем канале: https://t.me/HackerU_CTF
Решение:
Это обычное для турниров CTF задание, необходимое для того, чтобы посчитать всех принимавшихся за решение задач участников.
Но даже здесь флаги не должны доставаться так легко. Флаг не давался явно, но его можно было найти в нашем канале в сообщении:
Игра началась и первый флаг уже ждёт вас🚩
Наш CTF стартовал, и у вас есть 48 часов, чтобы захватить как можно больше флагов! Задания необходимо проходить с ПК. А вот пример формата флагов: HackerU{H@ppy_h@ck1ng!}
Не теряйте ни минуты и приступайте к выполнению заданий🚀http://ctf.hackeru.pro
HTML
Описание:
Говорят, что иногда полезно посмотреть доступный код приложения. Может и ты там что-нибудь найдешь?
Все флаги нужно искать на: http://ctf.hackeru.pro:1337/
Решение:
Это задание знакомит нас с целью для поиска флагов — сайтом поднятым по адресу: http://ctf.hackeru.pro:1337/.
Возникает вопрос, как нам получить исходный код? Речь идет о доступном коде приложения, т.е. о коде веб-страниц, которые доступны нам при работе с сайтом.
Открыв содержимое главной страницы, мы могли обнаружить флаг:
HTTP-proxy
Описание:
Докажи, что ты умеешь пользоваться HTTP-прокси для работы с трафиком. Иначе со следующими задачами тебе будет сложно.
Все флаги нужно искать на: http://ctf.hackeru.pro:1337/
Решение:
В задании речь заходит о работе с HTTP-прокси. Что это такое?
Прокси-сервер — промежуточный сервер в компьютерных сетях, выполняющий роль посредника между пользователем и целевым сервером, позволяющий клиентам как выполнять косвенные запросы к другим сетевым службам, так и получать ответы.
В работе с сайтам для поиска уязвимостей HTTP-прокси нужны, чтобы анализировать трафик приложения и искать особенности в поведении приложения на достаточно низком уровне.
Самые популярные HTTP-прокси для анализа приложений это Burp Suite от компании Portswigger и OWASP ZAP от проекта OWASP.
Воспользовавшись любым из них можно было увидеть, что при оформлении заказа появляется промежуточная страница order.php, которая учитывает заказ и перенаправляет вас на страницу recipt.php с электронным чеком. Также, это можно было увидеть из браузера, включив режим запоминания логов. Пример для HTTP-proxy BurpSuite:
IDOR
Описание:
Ты уже знаешь что такое IDOR? Докажи!
Все флаги нужно искать на: http://ctf.hackeru.pro:1337/
Решение:
В задании подразумевалось, что необходимо ознакомиться с одной из типовых уязвимостей веб-приложений IDOR. Для того, чтобы понять, что это за уязвимость, нужно было обратиться к поисковику и изучить примеры предлагаемые в интернете.
IDOR расшифровывается как Insecure Direct Object Reference (небезопасные прямые ссылки на объекты) и подразумевает ситуацию, когда пользователь может успешно получить доступ к странице, данным или файлу, доступа к которым у него быть не должно.
Страница с описанием заказа окрывается по адресу http://ctf.hackeru.pro:1337/recipt.php?orderID=1338.
После ознакомление с типом уязвимости IDOR становится понятно, что на этой странице мы можем ее применить, перебирая номера заказов, и найдя заказ с флагом.
Самый первый заказ в системе — это заказ под номером 1337, который и содержал в своем описании флаг:
SQLi
Описание:
Ну, если IDOR тебе знаком, то с этим ты точно разберешься. Или нет?
Все флаги нужно искать на: http://ctf.hackeru.pro:1337/
Решение:
Как и в прошлом задании, в этом подразумевалось, что участник сам разберется с тем, что же такое SQLi при помощи поисковика и сети Интернет.
По запросу SQLi поисковик выдаст следующее описание:
Внедрение SQL-кода — один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.
Дальше дело за мануалами. Если вы никогда с этим не сталкивались, поначалу может быть сложно. Однако, если хорошенько вчитаться в то, что лежит в Интернет, можно понять, что нам нужно получить доступ к сторонним таблицам базы данных.
Здесь и дальше я просто покажу, какие запросы и для чего можно было применить, оставив подробное объяснение как домашнее задание новичкам.
1.Получаем информацию о таблицах базы:
http://ctf.hackeru.pro:1337/recipt.php?orderID=-1%20UNION%20select%20null,null,null,table_name,null,null%20FROM%20INFORMATION_SCHEMA.tables
Результат:
2. Получаем информацию о колонках таблицы flag:
http://ctf.hackeru.pro:1337/recipt.php?orderID=-1%20UNION%20select%20null,null,null,column_name,null,null%20FROM%20INFORMATION_SCHEMA.columns%20where%20table_name=%27flag%27%20limit%201,1
Результат:
3. Получаем флаг из таблицы flag и колонки flag:
http://ctf.hackeru.pro:1337/recipt.php?orderID=-1%20UNION%20select%20null,null,null,flag,null,null%20FROM%20flag
Результат:
Заключение
Спасибо всем, кто принял участие в турнире! Ждем ваши отзывы о HackerU CTF, а также интересные предложения. Если вы хотите получить ещё больше практических навыков и знаний, то рекомендуем принять участие в интенсиве-практикуме «Penetration Testing», на котором вы научитесь:
- Сканировать локальные сети, узлы в сети Интернет и анализ полученного результата.
- Обнаруживать ряд уязвимостей в веб-приложениях, программах, операционных системах и почтовых серверах.
- Подбирать эксплойты к программному обеспечению с целью тестирования безопасности.
- Эксплуатировать уязвимости через программы для тестирования.
Интенсив проведёт Егор Богомолов — автор статьи, разработчик HackerU СTF и Head of Information Security Services at HackerU Russia.