Init. Commit

This commit is contained in:
Caplag
2026-09-17 00:50:07 +03:00
commit 880d8698d6
115 changed files with 7611 additions and 0 deletions
+101
View File
@@ -0,0 +1,101 @@
<h1 align="center">Сердце Сысолы</h1>
<p align="center"><i>Финальный этап · writeups</i></p>
<p align="center">
<img src="https://img.shields.io/badge/writeups-27-blue" alt="writeups: 27"/>
<img src="https://img.shields.io/badge/categories-7-orange" alt="categories: 7"/>
</p>
[Оба этапа](../README.md)
## Задания
<details>
<summary><b>Crypto</b> · 2 разбора</summary>
| Сложность | Таск | Описание |
|---|---|---|
| ![easy](https://img.shields.io/badge/easy-brightgreen) | [NullRoute KEM](nullroute-kem-crypto-easy/WRITEUP.md) | Открываем отклонённую KEM-капсулу с общедоступным fallback-секретом. |
| ![easy](https://img.shields.io/badge/easy-brightgreen) | [ScalarAlias](scalaralias-crypto-easy/WRITEUP.md) | Меняем скаляр подписи на эквивалентный и получаем ключ экспорта. |
</details>
<details>
<summary><b>Forensic</b> · 2 разбора</summary>
| Сложность | Таск | Описание |
|---|---|---|
| ![medium](https://img.shields.io/badge/medium-orange) | [Admission Drift](admission-drift-forensic-medium/WRITEUP.md) | Связываем прямой AdmissionReview, procfd и успешное чтение секрета. |
| ![medium](https://img.shields.io/badge/medium-orange) | [Grant Residue](grant-residue-forensic-medium/WRITEUP.md) | Прослеживаем device code phishing от кода на станции до Graph-экспорта. |
</details>
<details>
<summary><b>PWN</b> · 7 разборов</summary>
| Сложность | Таск | Описание |
|---|---|---|
| ![medium](https://img.shields.io/badge/medium-orange) | [ProxyRewrite](proxyrewrite-pwn-medium/WRITEUP.md) | Длинной заменой URL переписываем маршрут и поле диагностики. |
| ![easy](https://img.shields.io/badge/easy-brightgreen) | [PulseWidth](pulsewidth-pwn-easy/WRITEUP.md) | Обходим проверку длины через uint8_t и переписываем права сессии. |
| ![medium](https://img.shields.io/badge/medium-orange) | [RailAnnot](railannot-pwn-medium/WRITEUP.md) | Переполняем refcount и подменяем аннотацию через use-after-free. |
| ![hard](https://img.shields.io/badge/hard-critical) | [RawForge X3F](rawforge-x3f-pwn-hard/WRITEUP.md) | Переполняем произведение размеров RAW и затираем поля задания samples-данными. |
| ![easy](https://img.shields.io/badge/easy-brightgreen) | [RegexScope](regexscope-pwn-easy/WRITEUP.md) | Восстанавливаем случайный токен побайтовым оракулом чтения за границей. |
| ![easy](https://img.shields.io/badge/easy-brightgreen) | [SortKey Station](sortkey-station-pwn-easy/WRITEUP.md) | Знаковым смещением направляем проверку ключа на строку допуска в профиле. |
| ![hard](https://img.shields.io/badge/hard-critical) | [ZCRX Broker](zcrx-broker-pwn-hard/WRITEUP.md) | Двойным возвратом блока перекрываем capability и меняем закодированный handler. |
</details>
<details>
<summary><b>Reverse</b> · 5 разборов</summary>
| Сложность | Таск | Описание |
|---|---|---|
| ![medium](https://img.shields.io/badge/medium-orange) | [Orchid Wallet](orchid-wallet-ios-reverse-medium/WRITEUP.md) | Связываем конфиг в Mach-O с ключом из provisioning profile. |
| ![easy](https://img.shields.io/badge/easy-brightgreen) | [PYZ Sidecar](pyzsidecar-python-reverse-easy/WRITEUP.md) | Распаковываем боковой блок Python-байткода и собираем флаг. |
| ![medium](https://img.shields.io/badge/medium-orange) | [Tollgate IIS](tollgate-iis-dotnet-reverse-medium/WRITEUP.md) | Расшифровываем таблицу маршрутов AES-ключом из IIS-модуля. |
| ![medium](https://img.shields.io/badge/medium-orange) | [WasmCoat](wasmcoat-android-reverse-medium/WRITEUP.md) | Разбираем custom section wasm и снимаем XOR ключом из DEX. |
| ![hard](https://img.shields.io/badge/hard-critical) | [Wheelhouse Beacon](wheelhouse-beacon-python-reverse-hard/WRITEUP.md) | По RECORD находим LZMA-стадию и извлекаем константы байткода. |
</details>
<details>
<summary><b>Stego</b> · 4 разбора</summary>
| Сложность | Таск | Описание |
|---|---|---|
| — | [В глазах всё написано](kot1/WRITEUP.md) | Читаем полубайты из перестановок пикселей в блоках 2 × 2. |
| — | [Мы снова пришли к носу](kot5/WRITEUP.md) | Из PNG извлекаем PCAPNG и исполняем скрытую сцену, чтобы найти нос. |
| — | [Он немного изменился](kot4/WRITEUP.md) | По встроенному оригиналу восстанавливаем сетку и читаем направления сдвигов. |
| — | [У него есть прошлое](kot2/WRITEUP.md) | Восстанавливаем записку из CatFS по снимку и зафиксированным транзакциям. |
</details>
<details>
<summary><b>Web</b> · 6 разборов</summary>
| Сложность | Таск | Описание |
|---|---|---|
| ![hard](https://img.shields.io/badge/hard-critical) | [CaplagCombat](caplagcombat-web-hard/WRITEUP.md) | Получаем пять флагов через debug-пакет, тапы, гонку, SQLi и дубли полей доказательства. |
| ![easy](https://img.shields.io/badge/easy-brightgreen) | [DiffLane](difflane-web-easy/WRITEUP.md) | Вставляем разрешающую директиву в PR body и открываем внутреннюю заметку. |
| ![hard+](https://img.shields.io/badge/hard%2B-critical) | [DocMerge](task12_docmerge/WRITEUP.md) | Обходим AutoType-фильтр разрешённым reflection-плагином или наследником. |
| ![hard](https://img.shields.io/badge/hard-critical) | [FlowBase](task11_flowbase/WRITEUP.md) | Через IDOR и открытый вебхук копируем флаг в статику аргументами curl. |
| ![hard](https://img.shields.io/badge/hard-critical) | [GateKeeper](task13_gatekeeper/WRITEUP.md) | Получаем admin через смену пароля и выполняем root-команду через email. |
| — | [MongoPages](mongo-pages/WRITEUP.md) | Импортируем файл с флагом через серверный JS и обходим фильтр конкатенацией. |
</details>
<details>
<summary><b>Minecraft</b> · 1 разбор</summary>
| Сложность | Таск | Описание |
|---|---|---|
| — | [SYKTYV/KAR](syktyvkar/WRITEUP.md) | Через обработчик JNDI-ссылок стенда загружаем Bukkit-плагин и читаем флаг. |
</details>
---
<p align="center">
<a href="https://caplag.ru/"><img src="../assets/caplag-logo.svg" alt="Caplag" height="28"/></a>
</p>