42 lines
2.8 KiB
Markdown
42 lines
2.8 KiB
Markdown
# Руна Предвидения
|
||
|
||
В Гильдии Магов появилась Руна Предвидения: она не творит заклинаний, а описывает путь. Страж Портала Локхолда знает запретные имена, но не знает истинных числовых титулов. Составьте свиток так, чтобы руны вытащили тайну изнутри цитадели и напечатали её в PDF.
|
||
|
||
Свиток валиден, когда рунический заголовок и гравюра идут парой. Есть 2 режима работы: `meta` и `flag`.
|
||
Формат:
|
||
`[RUNE rid="..." mode="..." url="..."] `
|
||
|
||
|
||
## Решение
|
||
Сначала изучаем страницу и связанные параметры. По *cookie* находим `rune_rid`, а из описания понимаем, что руна должна использовать этот идентификатор в заголовке. Прямой `localhost` блокируется, поэтому для **SSRF** используем числовую форму `127.0.0.1` - `2130706433`.
|
||
|
||
### Получение `nonce`
|
||
Для первого запроса используем `mode="meta"`. Тогда сервис возвращает служебные данные, в которых печатается одноразовый `nonce`.
|
||
|
||
```
|
||
[RUNE rid="RID_ИЗ_COOKIE" mode="meta" url="http://2130706433/meta"]
|
||
|
||

|
||
```
|
||
|
||
После печати в PDF появится значение `nonce`.
|
||
|
||
### Получение флага
|
||
Во втором свитке подставляем `nonce` из первого PDF и меняем режим на `flag`:
|
||
|
||
```
|
||
[RUNE rid="RID_ИЗ_COOKIE" mode="flag" url="http://2130706433/flag?nonce=NONCE_ИЗ_PDF"]
|
||
|
||

|
||
```
|
||
|
||
После печати второго свитка в PDF появляется флаг.
|
||
|
||
### Не забываем учесть:
|
||
- Оракул отвечает только на навигацию документа, поэтому запрос через картинку не сработает: ``.
|
||
- Прямой `http://127.0.0.1/...` блокируется стражем по подстроке.
|
||
- `file:///flag.txt` блокируется фильтром протокола.
|
||
- Гравюра принимает только `/etch` и строгие параметры `rid` и `what`.
|
||
- Нельзя вставлять больше одной руны и одной гравюры в один свиток.
|
||
- `nonce` одноразовый и живёт около 15 секунд.
|