Сердце Сысолы
Финальный этап · writeups
[Оба этапа](../README.md)
## Задания
Crypto · 2 разбора
| Сложность | Таск | Описание |
|---|---|---|
|  | [NullRoute KEM](nullroute-kem-crypto-easy/WRITEUP.md) | Открываем отклонённую KEM-капсулу с общедоступным fallback-секретом. |
|  | [ScalarAlias](scalaralias-crypto-easy/WRITEUP.md) | Меняем скаляр подписи на эквивалентный и получаем ключ экспорта. |
Forensic · 2 разбора
| Сложность | Таск | Описание |
|---|---|---|
|  | [Admission Drift](admission-drift-forensic-medium/WRITEUP.md) | Связываем прямой AdmissionReview, procfd и успешное чтение секрета. |
|  | [Grant Residue](grant-residue-forensic-medium/WRITEUP.md) | Прослеживаем device code phishing от кода на станции до Graph-экспорта. |
PWN · 7 разборов
| Сложность | Таск | Описание |
|---|---|---|
|  | [ProxyRewrite](proxyrewrite-pwn-medium/WRITEUP.md) | Длинной заменой URL переписываем маршрут и поле диагностики. |
|  | [PulseWidth](pulsewidth-pwn-easy/WRITEUP.md) | Обходим проверку длины через uint8_t и переписываем права сессии. |
|  | [RailAnnot](railannot-pwn-medium/WRITEUP.md) | Переполняем refcount и подменяем аннотацию через use-after-free. |
|  | [RawForge X3F](rawforge-x3f-pwn-hard/WRITEUP.md) | Переполняем произведение размеров RAW и затираем поля задания samples-данными. |
|  | [RegexScope](regexscope-pwn-easy/WRITEUP.md) | Восстанавливаем случайный токен побайтовым оракулом чтения за границей. |
|  | [SortKey Station](sortkey-station-pwn-easy/WRITEUP.md) | Знаковым смещением направляем проверку ключа на строку допуска в профиле. |
|  | [ZCRX Broker](zcrx-broker-pwn-hard/WRITEUP.md) | Двойным возвратом блока перекрываем capability и меняем закодированный handler. |
Reverse · 5 разборов
| Сложность | Таск | Описание |
|---|---|---|
|  | [Orchid Wallet](orchid-wallet-ios-reverse-medium/WRITEUP.md) | Связываем конфиг в Mach-O с ключом из provisioning profile. |
|  | [PYZ Sidecar](pyzsidecar-python-reverse-easy/WRITEUP.md) | Распаковываем боковой блок Python-байткода и собираем флаг. |
|  | [Tollgate IIS](tollgate-iis-dotnet-reverse-medium/WRITEUP.md) | Расшифровываем таблицу маршрутов AES-ключом из IIS-модуля. |
|  | [WasmCoat](wasmcoat-android-reverse-medium/WRITEUP.md) | Разбираем custom section wasm и снимаем XOR ключом из DEX. |
|  | [Wheelhouse Beacon](wheelhouse-beacon-python-reverse-hard/WRITEUP.md) | По RECORD находим LZMA-стадию и извлекаем константы байткода. |
Stego · 4 разбора
| Сложность | Таск | Описание |
|---|---|---|
| — | [В глазах всё написано](kot1/WRITEUP.md) | Читаем полубайты из перестановок пикселей в блоках 2 × 2. |
| — | [Мы снова пришли к носу](kot5/WRITEUP.md) | Из PNG извлекаем PCAPNG и исполняем скрытую сцену, чтобы найти нос. |
| — | [Он немного изменился](kot4/WRITEUP.md) | По встроенному оригиналу восстанавливаем сетку и читаем направления сдвигов. |
| — | [У него есть прошлое](kot2/WRITEUP.md) | Восстанавливаем записку из CatFS по снимку и зафиксированным транзакциям. |
Web · 6 разборов
| Сложность | Таск | Описание |
|---|---|---|
|  | [CaplagCombat](caplagcombat-web-hard/WRITEUP.md) | Получаем пять флагов через debug-пакет, тапы, гонку, SQLi и дубли полей доказательства. |
|  | [DiffLane](difflane-web-easy/WRITEUP.md) | Вставляем разрешающую директиву в PR body и открываем внутреннюю заметку. |
|  | [DocMerge](task12_docmerge/WRITEUP.md) | Обходим AutoType-фильтр разрешённым reflection-плагином или наследником. |
|  | [FlowBase](task11_flowbase/WRITEUP.md) | Через IDOR и открытый вебхук копируем флаг в статику аргументами curl. |
|  | [GateKeeper](task13_gatekeeper/WRITEUP.md) | Получаем admin через смену пароля и выполняем root-команду через email. |
| — | [MongoPages](mongo-pages/WRITEUP.md) | Импортируем файл с флагом через серверный JS и обходим фильтр конкатенацией. |
Minecraft · 1 разбор
| Сложность | Таск | Описание |
|---|---|---|
| — | [SYKTYV/KAR](syktyvkar/WRITEUP.md) | Через обработчик JNDI-ссылок стенда загружаем Bukkit-плагин и читаем флаг. |
---