Init. commit

This commit is contained in:
Caplag
2026-03-02 21:44:22 +03:00
committed by Ivan Z
commit 9511b38280
38 changed files with 4397 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
# Руна Предвидения
В Гильдии Магов появилась Руна Предвидения: она не творит заклинаний, а описывает путь. Страж Портала Локхолда знает запретные имена, но не знает истинных числовых титулов. Составьте свиток так, чтобы руны вытащили тайну изнутри цитадели и напечатали её в PDF.
Свиток валиден, когда рунический заголовок и гравюра идут парой. Есть 2 режима работы: `meta` и `flag`.
Формат:
`[RUNE rid="..." mode="..." url="..."] ![](/etch?rid=...&what=...)`
## Решение
Сначала изучаем страницу и связанные параметры. По *cookie* находим `rune_rid`, а из описания понимаем, что руна должна использовать этот идентификатор в заголовке. Прямой `localhost` блокируется, поэтому для **SSRF** используем числовую форму `127.0.0.1` - `2130706433`.
### Получение `nonce`
Для первого запроса используем `mode="meta"`. Тогда сервис возвращает служебные данные, в которых печатается одноразовый `nonce`.
```
[RUNE rid="RID_ИЗ_COOKIE" mode="meta" url="http://2130706433/meta"]
![](/etch?rid=RID_ИЗ_COOKIE&what=meta)
```
После печати в PDF появится значение `nonce`.
### Получение флага
Во втором свитке подставляем `nonce` из первого PDF и меняем режим на `flag`:
```
[RUNE rid="RID_ИЗ_COOKIE" mode="flag" url="http://2130706433/flag?nonce=NONCE_ИЗ_PDF"]
![](/etch?rid=RID_ИЗ_COOKIE&what=flag)
```
После печати второго свитка в PDF появляется флаг.
### Не забываем учесть:
- Оракул отвечает только на навигацию документа, поэтому запрос через картинку не сработает: `![](/oracle?rid=x&mode=meta&u=http://2130706433/meta)`.
- Прямой `http://127.0.0.1/...` блокируется стражем по подстроке.
- `file:///flag.txt` блокируется фильтром протокола.
- Гравюра принимает только `/etch` и строгие параметры `rid` и `what`.
- Нельзя вставлять больше одной руны и одной гравюры в один свиток.
- `nonce` одноразовый и живёт около 15 секунд.