DiceCTF 2026 Bytecrusher — разбираем pwn задачу с кастомным байткодом

Рейтинг: 34.2% · 2 голосов
Capture The Flag, реверс бинарных файлов, разработка эксплойтов, ассемблер, форензика, крэкми и задачи по информационной безопасности.
Ответить
Аватара пользователя
daria_ssh
Сообщения: 3
Зарегистрирован: Вс май 10, 2026 8:59 pm

DiceCTF 2026 Bytecrusher — разбираем pwn задачу с кастомным байткодом

Сообщение daria_ssh »

Прошёл недавно DiceCTF 2026, там была задача Bytecrusher — описана как «nice and relatively easy» но я завис на ней прилично. Кастомный интерпретатор байткода, нужно найти баг и получить шелл. Кто решал — давайте разберём подход. Мне интересно сравнить методы, я в итоге нашёл OOB write через неправильную проверку индекса стека, но ощущение что можно было сделать чище.
👍 ❤️ 🔥 😄 🤔
✔ Лучший ответ сформирован автоматически — savva_io
Я брал эту задачу. Тоже нашёл OOB через stack index, но путь к шеллу был через перезапись указателя на функцию в структуре интерпретатора. Ghidra сразу показала что структура vm_state лежит в heap рядом с буфером стека, дальше дело техники. Интересно было что ASLR включён, но leak давался через специальную инструкцию print_addr которую авторы оставили намеренно.
Перейти к ответу →
Аватара пользователя
savva_io
Сообщения: 41
Зарегистрирован: Вс май 10, 2026 9:03 pm

Re: DiceCTF 2026 Bytecrusher — разбираем pwn задачу с кастомным байткодом

Сообщение savva_io »

✔ Лучший ответ — сформирован автоматически
Я брал эту задачу. Тоже нашёл OOB через stack index, но путь к шеллу был через перезапись указателя на функцию в структуре интерпретатора. Ghidra сразу показала что структура vm_state лежит в heap рядом с буфером стека, дальше дело техники. Интересно было что ASLR включён, но leak давался через специальную инструкцию print_addr которую авторы оставили намеренно.
👍 ❤️ 🔥 😄 🤔1
Аватара пользователя
valera_vector
Сообщения: 32
Зарегистрирован: Пн май 11, 2026 8:23 am

Re: DiceCTF 2026 Bytecrusher — разбираем pwn задачу с кастомным байткодом

Сообщение valera_vector »

Я сначала потратил час пытаясь найти баг через фаззинг AFL++ по байткоду — без толку, таймаут. Потом взял Ghidra, нашёл обработчик каждой инструкции вручную, минут за 20 стало понятно что проверка `if (sp >= STACK_SIZE)` не проверяет нижнюю границу. Отрицательный индекс — profit.
👍2 ❤️ 🔥1 😄 🤔
Аватара пользователя
savva_sigma29
Сообщения: 2
Зарегистрирован: Сб май 23, 2026 5:26 am

Re: DiceCTF 2026 Bytecrusher — разбираем pwn задачу с кастомным байткодом

Сообщение savva_sigma29 »

Хороший паттерн для задач с кастомными VM: сначала реверсишь набор инструкций и пишешь дизассемблер (обычно 30-50 строк на питоне), потом уже смотришь что делает исходный байткод задачи, и ищешь баги в имплементации конкретных опкодов. Намного быстрее чем читать весь интерпретатор как монолит.
👍1 ❤️2 🔥 😄 🤔
Аватара пользователя
cloudasync5302
Сообщения: 4
Зарегистрирован: Сб май 16, 2026 12:53 am

Re: DiceCTF 2026 Bytecrusher — разбираем pwn задачу с кастомным байткодом

Сообщение cloudasync5302 »

Для тех кто хочет попрактиковаться на похожих задачах — есть целый трек на pwn.college по реверсу и эксплуатации VM. Там прогрессия от простого к сложному, и задачи с кастомными архитектурами где надо написать шеллкод под несуществующий CPU. Очень рекомендую перед следующим CTF.
👍 ❤️ 🔥 😄 🤔1
Аватара пользователя
ruslan_pro
Сообщения: 24
Зарегистрирован: Чт май 14, 2026 3:04 am

Re: DiceCTF 2026 Bytecrusher — разбираем pwn задачу с кастомным байткодом

Сообщение ruslan_pro »

Один вопрос: как вы писали финальный эксплойт — вручную собирали байткод или написали ассемблер для этой VM? Я написал маленький ассемблер на питоне, это заняло ещё час но зато эксплойт получился читаемый и легко дебажился.
👍 ❤️ 🔥1 😄2 🤔1
Аватара пользователя
appdaemon9597
Сообщения: 11
Зарегистрирован: Вт май 19, 2026 1:16 am

Re: DiceCTF 2026 Bytecrusher — разбираем pwn задачу с кастомным байткодом

Сообщение appdaemon9597 »

@crypto_anon, Писал байткод руками в hex, было больно. В следующий раз буду писать дизассемблер/ассемблер сразу — это реально экономит время на финальном этапе когда нужно итеративно подбирать payload.
👍1 ❤️ 🔥2 😄 🤔1
Ответить
Поделиться темой: ✈ Telegram VK

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей