Закрепление в Next.js через генерацию сессионных кук
#NextJS #next #react #js #React2Shell #RCE #AuthJS
Исследователь Embrace The Red продемонстрировал технику закрепления в next-auth (Auth.js), позволяющую генерировать валидные сессии в обход Identity Provider и обеспечивать персистентность даже при регулярной ротации OAuth-кредов. В начале цепочки используется небезызвестная React2Shell бага.
♾️ Техническая суть♾️
В режиме JWT архитектура next-auth опирается на Stateless JWE (JSON Web Encryption). Валидность сессии определяется исключительно возможностью расшифровать токен на сервере.
Key Encryption Key генерируется через алгоритм HKDF, в качестве входных данных используя IKM (Input Keying Material, переменная окружения
Утечка
♾️ Типичный пайплайн атаки♾️
▪️ Атакующий эксплуатирует React2Shell и получает RCE.
▪️ Дампит переменные окружения (env) и забирает
▪️ С помощью скрипта на базе кода самой либы генерирует подписанную куку next-auth.session-token с нужными клеймами (Admin, UserID и т.д.).
▪️ Подставляет куку в браузер и обеспечивает персистентность, даже если OAuth-креды сброшены.
♾️ Защита♾️
▪️ Обязательная ротация
▪️ Инвалидация всех активных сессий после ротации.
▪️ Мониторинг дубликатов JTI (JWT ID) с разных IP-адресов.
▪️ Детект аномальных полей в сессиях (странные User-Agent и т.п.).
🔗 Источник
🔗 GitHub
🌚 @poxek | 📲 MAX |🌚 Блог | 📺 YT | 📺 RT | 📺 VK
#NextJS #next #react #js #React2Shell #RCE #AuthJS
Исследователь Embrace The Red продемонстрировал технику закрепления в next-auth (Auth.js), позволяющую генерировать валидные сессии в обход Identity Provider и обеспечивать персистентность даже при регулярной ротации OAuth-кредов. В начале цепочки используется небезызвестная React2Shell бага.
В режиме JWT архитектура next-auth опирается на Stateless JWE (JSON Web Encryption). Валидность сессии определяется исключительно возможностью расшифровать токен на сервере.
Key Encryption Key генерируется через алгоритм HKDF, в качестве входных данных используя IKM (Input Keying Material, переменная окружения
NEXTAUTH_SECRET) и Salt — дефолтное или кастомное имя куки (например, next-auth.session-token).Утечка
NEXTAUTH_SECRET позволяет атакующему локально воспроизвести процесс HKDF и зашифровать произвольный JSON-пейлоад, подменив sub, email, iat, exp. Сервер примет такой JWE-контейнер как легитимный, поскольку криптографическая целостность соблюдена, а сверка с базой данных или OAuth-провайдером для расшифрованных сессий архитектурно не требуется.NEXTAUTH_SECRET.NEXTAUTH_SECRET и AUTH_SECRET при любом подозрении на компрометацию.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8 3