Init. commit
This commit is contained in:
41
ForesightRune-Web/README.md
Normal file
41
ForesightRune-Web/README.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Руна Предвидения
|
||||
|
||||
В Гильдии Магов появилась Руна Предвидения: она не творит заклинаний, а описывает путь. Страж Портала Локхолда знает запретные имена, но не знает истинных числовых титулов. Составьте свиток так, чтобы руны вытащили тайну изнутри цитадели и напечатали её в 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 секунд.
|
||||
Reference in New Issue
Block a user