Перейти к содержимому

Web ctf как решать

  • автор:

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

codeby.games

Всем привет! В последнее время я стал интересоваться CTF , но как я в этом полный ноль , то нужно с чего начинать . Первое , что мне пришло в голову — это загуглить.

1672168220845.png

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

Ссылка скрыта от гостей

Хорошо , с литературой определились.Теория это хорошо , но практика тоже нужна.Поэтому я нашел интересную машину на TryHackMe , она бесплатная и очень даже полезная.

tryhackme.com

TryHackMe | CTF collection Vol.1

Sharpening up your CTF skill with the collection. The first volume is designed for beginner.

tryhackme.com

tryhackme.com

В этой статье я собираюсь , как раз ее пройти и поделиться с вами.
Эта комната посвящена CTF , где можно проверить свои умения.Большинство заданий легкие , поэтому даже я смогу их вам объяснить доступно.

1672168391126.png

Мы видим на конце == — это означает base64.Как можно декодировать?
если на линуксе , то:
echo VEhNe2p1NTdfZDNjMGQzXzdoM19iNDUzfQ== | base64 -d
можно и онлайн

Ссылка скрыта от гостей

Можно и через текстовой редактор emeditor

1672168515804.png

Можно через бурп decoder

1672168646438.png

Далее открываем в линуксе утилиту

1672168663739.png

exiftool и рядом путь до файла с картинкой и забираем флаг из owner заголовка.
А вы кстати знаете , как удалять метаданные с картинки? Для этого достаточно открыть Photoshop и сохранить файл для web и метаданные удаляться.

1672168741039.png

Ну 5 задание это полная бредятина.Просто выделить и появиться скрытый текст. Я помню раньше были сайты разводилы , которые давали якобы доступ в гта 5 за регистрацию , а если вводил свою мобилу туда , то списывали деньги ) Там как раз правила были также спрятаны , как в 5 таске.

1672168831318.png

Тут просто скачиваем QR код и пишем в гугле.Онлайн отсканировать QRкод.Ну например —
Ссылка скрыта от гостей

Да , я пропустил 4 таск , потому что он чутка посложнее предыдущих.

1672168941063.png

Я долго не мог скачать софт под названием «stegoveritas’.Я смог это сделать когда перешел в root’a , честно хз с чем это связано.Но если у вас тоже не получается скачать stegoveritas , то вводим в терминал sudo -i
и вводим:
$ pip3 install stegoVeritas
$ stegoVeritas_install_deps

1672169066770.png

и забираем флаг

1672169082331.png

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

1672169149308.png

Листаем вниз и сохраняем файл , а после декодируем.

1672169177947.png

Вот наш текст собственно говоря

1672169217896.png

Чтобы решить 8 задание переходим на
Ссылка скрыта от гостей
в оператор Magic

1672169268541.png

и забираем флаг)
10 таск просто через код элемента забираем флаг

1672169326554.png

1672169343348.png

В подсказках указано , что учетка reddit.
Значит для поиска воспользуемся dork операторами гугла и найдем флаг

1672169497815.png

Думаю разберетесь там всего 2 страницы))
7 TASK:

1672170969942.png

Нам дан бинарный файл ( двоичный ) . Что такое бинарный файл — это антоним к термину текстовой файл.

1672171016096.png

в kali linux есть встроенная утилита strings , которая сможет нам помочь и мы получим флаг.Вводим strings название файла и копируем флаг.Там у strings есть аргументы
длина строки по дефолту от 4.Ну мы знаем , что флаг больше 4 , поэтому меньше ставить смысла нет , но знать полезно

1672171098785.png

Вот для примера , можем отфильтровать от 18 символов и флаг сразу будет виден:

1672171180376.png

1672171276699.png

Всё также онлайн расшифровывается.Это ‘Шифр Цезаря’
Или кибершеф , так как мы знаем ROT13

1672171414067.png

обратите внимание на настройки.Их надо подобрать , как на скриншоте.
11 таск

1672173020587.png

нам дан файл .png , который сломан.

1672173038422.png

Просмотрим рабочий файл .png (любой другой) через hexeditor в kali linux

1672173197000.png

и еще один:

1672173222884.png

Как мы видим , чтобы png файл работал должен быть вот такой набор символов.Теперь смотрим наш поврежденный файл:

1672173285412.png

Тут что-то не то.
Значит меняем этот набор , как на рабочих файлах png и сохраняем
hexeditor (название нашего файла) в терминале пишем и редактируем , а далее сохраняем ctrl + x

1672173457848.png

можно выдернуть текст через яндекс переводчик

1672173571645.png

Или можно воспользоваться утилитой tesseract

1672173906506.png

text — это файл куда будет направляться текст.
apt install tesseract-ocr вот так устанавливаем эту утилиту в терминале.
Task 13

1672174199170.png

Дан какой-то набор спец.символов и надо понять , что это за язык программирования. Конечно мы можем нажать Hint и узнать , что это brainfuck , но на деле никто нам такие подсказки давать не будет. Я задавал вопрос в чате кодебай и никто не смог помочь нормально.

1672174300557.png

Поэтому рекомендую сохранить этот сайт в закладки —
Ссылка скрыта от гостей

1672174332459.png

Ищем и в поиске появляется ‘Brainfuck’ кликаем на него.Трахнули мозги и получили флаг

1672174395192.png

1672174580611.png

1672174591153.png

Переходим сюда:
Ссылка скрыта от гостей

Вставляем S1 в первое поле и S2 во второе и забираем флаг.Обратите внимание , что можно поставить ASCII

1672174655899.png

1672175261736.png

Устанавливаем необходимый софт:

Quick Start Guide

Firmware Analysis Tool. Contribute to ReFirmLabs/binwalk development by creating an account on GitHub.

1672175294243.png

и забираем флаг
16 TASK

1672175470863.png

Просто крутим экспозицию в фотошопе

1672175604919.png

17 таск бесполезный.Надо слушать в саунклауд звуки.Его пропускаем.
18 таск.Суть перейти на веб архив и забрать флаг , дата указана.Тоже ничего сложного

Ссылка скрыта от гостей

1672175912742.png

шифр вижинера и мы знаем слово TRYHACKME и жмем расшифровать.Забираем флаг)
20 TASK

1672176146583.png

1672176153855.png

1672176162206.png

21 TASK
wireashark > open file >

1672176411324.png

1672176428920.png

И ищем flag

1672176448292.png

и сохраняем например , как html и забираем флаг)))

CTF Легкие таски с CTF (врайтап)

photo_2023-04-22_17-25-56.jpg

2.Музыкальные файлы.Тот , который попроще достаточно просто поиграться с настройками в fl studio или аудасити.Делаем reverse и корректируем тон и некоторые другие настройки , цифры , которые мы услышим и будут флагом.Таск , который посложнее и связан с какой-то страшной аудио — это морзянка.

slide-92.jpg

Открываем файл и разбиваем аудио по буквам и далее сопоставляем — это и будет флагом.
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

nokia_130_8.jpg

Сопоставляем. 333 — это третья буква на кнопке «3» — f , 666 — это третья буква на кнопке «6» — o , 99 — это вторая буква на кнопке «9» — x и т.д. Полученное слово и будет флагом.
5.Дан PDF file , но флаг запрятан.Можно использовать утилиту pdftotext или же онлайн

Ссылка скрыта от гостей

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

1682275631736.png

7.Анимешка nessa используем утилиту , как на картинке

1682275670517.png

Но перед этим находим скрытый коммент , если не ошибаюсь в meta.Далее его брутим johnom со словарем rockyou.txt.Команды для брута вот:

Ссылка скрыта от гостей

Скачиваем архив , который запрятан в картинке и брутим пароль johnom.Таск решен)
steghide —extract -sf nessa.jpg -p (сбрученный хэш сюда)
Можно хэш взломать и тут —

Ссылка скрыта от гостей

Comment с помощью exiftool находим

1682276005326.png

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 (мы часто реверсим в статике, но не всегда знаем все подводные камни).

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *