CTF Познаем азы CTF (для чайников)

Всем привет! В последнее время я стал интересоваться CTF , но как я в этом полный ноль , то нужно с чего начинать . Первое , что мне пришло в голову — это загуглить.
Первый попавшийся сайт отправляет нас куда надо. Там много информации полезно , которую я рекомендую прочесть.Сам я тоже по чуть-чуть читаю)
Ссылка скрыта от гостей
Хорошо , с литературой определились.Теория это хорошо , но практика тоже нужна.Поэтому я нашел интересную машину на TryHackMe , она бесплатная и очень даже полезная.
![]()
TryHackMe | CTF collection Vol.1
Sharpening up your CTF skill with the collection. The first volume is designed for beginner.
![]()
tryhackme.com
В этой статье я собираюсь , как раз ее пройти и поделиться с вами.
Эта комната посвящена CTF , где можно проверить свои умения.Большинство заданий легкие , поэтому даже я смогу их вам объяснить доступно.
Мы видим на конце == — это означает base64.Как можно декодировать?
если на линуксе , то:
echo VEhNe2p1NTdfZDNjMGQzXzdoM19iNDUzfQ== | base64 -d
можно и онлайн
Ссылка скрыта от гостей
Можно и через текстовой редактор emeditor
Можно через бурп decoder
Далее открываем в линуксе утилиту
exiftool и рядом путь до файла с картинкой и забираем флаг из owner заголовка.
А вы кстати знаете , как удалять метаданные с картинки? Для этого достаточно открыть Photoshop и сохранить файл для web и метаданные удаляться.
Ну 5 задание это полная бредятина.Просто выделить и появиться скрытый текст. Я помню раньше были сайты разводилы , которые давали якобы доступ в гта 5 за регистрацию , а если вводил свою мобилу туда , то списывали деньги ) Там как раз правила были также спрятаны , как в 5 таске.
Тут просто скачиваем QR код и пишем в гугле.Онлайн отсканировать QRкод.Ну например —
Ссылка скрыта от гостей
Да , я пропустил 4 таск , потому что он чутка посложнее предыдущих.
Я долго не мог скачать софт под названием «stegoveritas’.Я смог это сделать когда перешел в root’a , честно хз с чем это связано.Но если у вас тоже не получается скачать stegoveritas , то вводим в терминал sudo -i
и вводим:
$ pip3 install stegoVeritas
$ stegoVeritas_install_deps
и забираем флаг
Полезно понимать , как работает стеганография.Давайте перейдем на онлайн ресурс
Ссылка скрыта от гостей
и попробуем закодировать текст в изображение.
Листаем вниз и сохраняем файл , а после декодируем.
Вот наш текст собственно говоря
Чтобы решить 8 задание переходим на
Ссылка скрыта от гостей
в оператор Magic
и забираем флаг)
10 таск просто через код элемента забираем флаг
В подсказках указано , что учетка reddit.
Значит для поиска воспользуемся dork операторами гугла и найдем флаг
Думаю разберетесь там всего 2 страницы))
7 TASK:
Нам дан бинарный файл ( двоичный ) . Что такое бинарный файл — это антоним к термину текстовой файл.
в kali linux есть встроенная утилита strings , которая сможет нам помочь и мы получим флаг.Вводим strings название файла и копируем флаг.Там у strings есть аргументы
длина строки по дефолту от 4.Ну мы знаем , что флаг больше 4 , поэтому меньше ставить смысла нет , но знать полезно
Вот для примера , можем отфильтровать от 18 символов и флаг сразу будет виден:
Всё также онлайн расшифровывается.Это ‘Шифр Цезаря’
Или кибершеф , так как мы знаем ROT13
обратите внимание на настройки.Их надо подобрать , как на скриншоте.
11 таск
нам дан файл .png , который сломан.
Просмотрим рабочий файл .png (любой другой) через hexeditor в kali linux
и еще один:
Как мы видим , чтобы png файл работал должен быть вот такой набор символов.Теперь смотрим наш поврежденный файл:
Тут что-то не то.
Значит меняем этот набор , как на рабочих файлах png и сохраняем
hexeditor (название нашего файла) в терминале пишем и редактируем , а далее сохраняем ctrl + x
можно выдернуть текст через яндекс переводчик
Или можно воспользоваться утилитой tesseract
text — это файл куда будет направляться текст.
apt install tesseract-ocr вот так устанавливаем эту утилиту в терминале.
Task 13
Дан какой-то набор спец.символов и надо понять , что это за язык программирования. Конечно мы можем нажать Hint и узнать , что это brainfuck , но на деле никто нам такие подсказки давать не будет. Я задавал вопрос в чате кодебай и никто не смог помочь нормально.
Поэтому рекомендую сохранить этот сайт в закладки —
Ссылка скрыта от гостей
Ищем и в поиске появляется ‘Brainfuck’ кликаем на него.Трахнули мозги и получили флаг
Переходим сюда:
Ссылка скрыта от гостей
Вставляем S1 в первое поле и S2 во второе и забираем флаг.Обратите внимание , что можно поставить ASCII
Устанавливаем необходимый софт:
Quick Start Guide
Firmware Analysis Tool. Contribute to ReFirmLabs/binwalk development by creating an account on GitHub.
и забираем флаг
16 TASK
Просто крутим экспозицию в фотошопе
17 таск бесполезный.Надо слушать в саунклауд звуки.Его пропускаем.
18 таск.Суть перейти на веб архив и забрать флаг , дата указана.Тоже ничего сложного
Ссылка скрыта от гостей
шифр вижинера и мы знаем слово TRYHACKME и жмем расшифровать.Забираем флаг)
20 TASK
21 TASK
wireashark > open file >
И ищем flag
и сохраняем например , как html и забираем флаг)))
CTF Легкие таски с CTF (врайтап)
2.Музыкальные файлы.Тот , который попроще достаточно просто поиграться с настройками в fl studio или аудасити.Делаем reverse и корректируем тон и некоторые другие настройки , цифры , которые мы услышим и будут флагом.Таск , который посложнее и связан с какой-то страшной аудио — это морзянка.

Открываем файл и разбиваем аудио по буквам и далее сопоставляем — это и будет флагом.
3.Таск на 100 очков был в здании на листке бумаги написан , команды должны были найти листок.
4.Криптография 43 4F 44 45 01000010 01011001 01111011 167 60 167 137 167 150 60 154 63 137 102 97 109 49 108 121 95 116 48 95 U+67 U+61 U+74 U+68 U+33 U+72 U+7D
Тут надо знать про hex , oct (8 ричная система) , utf8 и dec (десятичная) , двоичная
HEX — это [0-9] ABCDEF
BINARY — 0,1
OCT — [0-7]
UTF-8 —
Ссылка скрыта от гостей
Разбиваем на части и загоняем в cyberchef —
Ссылка скрыта от гостей
и используем magic.А UTF-8 ручками из таблицы
43 4F 44 45 — hex , 01000010 01011001 01111011 — binary , 167 60 167 137 167 150 60 154 63 137 — oct , 102 97 109 49 108 121 95 116 48 95 — dec , U+67 U+61 U+74 U+68 U+33 U+72 U+7D — utf8
5.Таск с NOKIA дам .txt файл с цифрами (к сожалению файл не сохранил) но к примеру: 333 666 99 1

Сопоставляем. 333 — это третья буква на кнопке «3» — f , 666 — это третья буква на кнопке «6» — o , 99 — это вторая буква на кнопке «9» — x и т.д. Полученное слово и будет флагом.
5.Дан PDF file , но флаг запрятан.Можно использовать утилиту pdftotext или же онлайн
Ссылка скрыта от гостей
флаг сразу будет получен.
6.Со стикером с лупой кодебай нужно просто сохранить его правильно открыть в paint net добавить слой под картинкой, желательно белый , а потом инвертим альфа канал.Флаг появится прямо на картинке.
7.Анимешка nessa используем утилиту , как на картинке
Но перед этим находим скрытый коммент , если не ошибаюсь в meta.Далее его брутим johnom со словарем rockyou.txt.Команды для брута вот:
Ссылка скрыта от гостей
Скачиваем архив , который запрятан в картинке и брутим пароль johnom.Таск решен)
steghide —extract -sf nessa.jpg -p (сбрученный хэш сюда)
Можно хэш взломать и тут —
Ссылка скрыта от гостей
Comment с помощью exiftool находим
8.Таск с поврежденным форматом (раздел форензика)
открываем файл в hexeditor (в кали эта утилита стоит по дефолту) меняем значения на jpg
Ссылка скрыта от гостей
сохраняем и на фотке будет флаг.
Думаю , эта статья поможет новичкам , которые только начали изучать CTF ( я сам тоже новичок ) участвовал 2 раза в ctf , в первый раз 0 флагов нашел , в этот раз вывели команду на 19 из 600 , естественно спасибо большое моему товарищу по команде , который решал сложные таски с реверсом.После завершения мероприятия я скинул некоторые таски товарищу с учебы , который вообще не имеет отношения к айти , он смог решить со звуковым файлом задачку и с шифром из мультика.Поэтому , как мне кажется есть задачки , которые осилит даже самый отдаленный человек.Спасибо за прочтение!
p/s на оффлане было круто @The Codeby спасибо большое за бутеры , было очень весело решать таски.
CTF. Web. Задания с Root-Me, часть #26.

https://t.me/hacker_sanctuary
В случае заимствования данной информации, указывайте авторство — Telegram-канал «Убежище Хакера».
Данный пост будет носить практический характер. В нём мы решим очередное задание на эксплуатацию уязвимостей веб-приложений в контексте заданий CTF.
Задания будут взяты с известного сайта с различными задачами (CTF и не только) — https://www.root-me.org/
Будем решать задачи из категории: Web — Server
Предыдущие задания из данной категории вы можете найти на канале.
Часть 1 — ссылка
Часть 2 — ссылка
Часть 3 — ссылка
Часть 4 — ссылка
Часть 5 — ссылка
Часть 6 — ссылка
Часть 7 — ссылка
Часть 8 — ссылка
Часть 9 — ссылка
Часть 10 — ссылка
Часть 11 — ссылка
Часть 12 — ссылка
Часть 13 — ссылка
Часть 14 — ссылка
Часть 15 — ссылка
Часть 16 — ссылка
Часть 17 — ссылка
Часть 18 — ссылка
Часть 19 — ссылка
Часть 20 — ссылка
Часть 21 — ссылка
Часть 22 — ссылка
Часть 23 — ссылка
Часть 24 — ссылка
Часть 25 — ссылка
Пример 1.
Сегодня разберём задачу «SQL injection — authentication».

Первое задание на SQL-инъекции, одна из самых распространённых уязвимостей в веб-приложениях. Данное задание является одним из самых простых примеров SQLi в форме аутентификации.
Для того, чтобы иметь базовые представления об SQLi, рекомендую прочитать наши старые посты про уязвимости веб-приложений:
Если вам не хватит данного материала, вы можете также самостоятельно поискать информацию в сети. Тема SQLi хорошо описана и имеет множество простых объяснений работы и примеров. Это во многом связано с тем, что данная уязвимость довольно проста на начальных этапах, а точнее методы её эксплуатации.
Начнём задание, перейдя по ссылке.

Исходного кода нет, но мы ведь знаем, что здесь есть SQLi. Для удобства будем отправлять запросы через Burp Suite.
Для начала отправим просто кавычку, с целью вызвать ошибку SQL синтаксиса.

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

Получаем ошибку, отлично. Теперь попробуем сделать стандартный обход авторизации использую комментирование.
Смысл данного метода заключается в том, что мы отбрасываем проверку пароля с помощью комментирования оставшегося запроса, в котором происходит проверка пароля. Запрос может иметь примерно следующий вид
SELECT * FROM users WHERE username=’$user_name’ and password = ‘$password’
Таким образом встраивая в код : ‘ — ‘ в имя пользователя мы отбросим проверку пароля, т.к. последовательность символов — является комментарием в SQL.
Попробуем передать строку ‘ — ‘. При этом укажем перед ней имя пользователя «admin», т.к. нам надо получить пароль для него.

Отлично, инъекция проходит и мы заходим из под админа и нам выдаёт username и password для этого аккаунта.
Используем полученный пароль для сдачи задания. Задание решено.
Это один из самых простых примеров SQLi и сейчас его встретить очень сложно, разве что на старых сайтах или у совсем неопытных разработчиков, которые используют небезопасные запросы к БД.
Если у вас остались вопросы по решению задания или в целом по хакингу, то напишите в бот-ответчик — @hackersanctuary_bot
Решения CTF 2023 от «Доктор Веб». Часть 2
Друзья, продолжаем публиковать решения нашего CTF-марафона! В нем было пять уровней сложности, в каждом по пять заданий — всего 25 заданий. Каждую неделю выкладывать по 5 решений — сегодня рассказываем о втором уровне сложности.
Результаты марафона мы подвели в начале апреля, но задания все еще доступны — и вы можете попробовать решить их для себя.

CTF-2023 от «Доктор Веб»: задания уровня Rare
1. Supreme victory
Для решения этого задание необходимо понимать принципы работы формата PDF: структура таких файла завязана на определенных объектах, и чтение файла всегда начинается с первого объекта:

Когда найден первый объект, сразу становится видным подозрительное действие “OpenAction” для объекта с порядковым номером 15.

После нужно найти этот объект №15 — им оказывается обфусцированный JS-код. Обфускация довольно простая (obfuscate.io), и следующим шагом можно попробовать ее деобфусцировать. Например, в deobfuscate.io — здесь получится как минимум переименовать названия функций из Hex в более читабельный формат.

Затем необходимо деобфусцировать вручную — с помощью дебага, запуска и, в случае хорошего владения JS, статического анализа кода,
Флаг: https://deobfuscate.io/
2. De-DoS me
Если открыть файл в Hex-редакторе, можно увидеть измененный dos-stub, который вшит в каждый mzpe-файл — легаси платформы msdos.

Если перейти по этой ссылке из dos-stub, то нас отправит на рикролл!
Задание проверяет понимание, как работает формат mzpe. Когда обнаружится измененный dos-stub, его сразу можно запустить в любом эмуляторе msdox —например, в DOSbox.

Запускаем наш файл — и получаем флаг!
Также можно вручную пройтись по всему asm-коду и найти флаг без эмуляции DOS — но это решение требует большего количества времени.

Флаг: DrWeb
3. Ping
Открывая данный файл мы можем увидеть простенькую пародию на pong.

Чтобы отреверсить какую либо игрушку надо бы в первую очередь узнать, на каком движке она была написана. Первое, что приходит в голову — это по быстрому проверить строки. По строкам можно быстр определить, что это godot.

Чтобы узнать, как декомпилировать Godot, можно обратиться к Google — и найти, например, этот репозиторий. После декомпиляции можно смотреть скрипты.

Если вкратце, то нас интересует скрипт ball.gd

Забиваем куда-нибудь байты, чтобы посмотреть их значение в ASCII и получаем флаг:

Флаг: DrWeb
4. Glycine?
Си код, закомпиленный визуал студио, сверху накрыт нашим пакером.
Внутри уязвимый код, который требует ввести пароль, для того, чтобы отобразить флаг в base64. Нам даны нужные для входа пароль, который к сожалению не подходит. А еще даны адреса всех используемых переменных.

Если ввести пароль, который дан в задании, то результат будет следующим:

Нам требуется переполнить буффер так, чтобы заполнить нужную переменную паролем и получить таким образом флаг

Пример строчки для получения правильного фалага: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAae1ce347d9ca43b41c112a658cb3b03
Флаг: DrWeb
5. Back to the Future
В этом задании с нашей стороны была допущена ошибка — поэтому мы помогали участникам CTF как могли.
Задание представляет из себя 64 битный ELF и подразумевает подбор правильной даты и подстановку этой даты в код, в виде числового значения, сам же timestamp должен сформировать часть флага:

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

Проблема в задании заключается в разнице форматов time_t и структуры struct tm, в частности в разной точке отсчета (в time_t отсчет начинается с 1/1/1970, в структуре c 1900 года).
В итоге, если не думать об этом и посчитать руками, то мы получим следующий timestamp (мы часто реверсим в статике, но не всегда знаем все подводные камни).

Переводим его во флаг, подобно тому, как это делает код: