Forwarded from AppSecs
Представим ситуацию, у нас реализуется web-приложение с stateless сессиями — с использованием accessToken. Пользователь проходит аутентификацию, и backend-сервер выпускает accessToken и передает его клиенту.
Классический вопрос: «Где хранить accessToken на клиенте?».
Если JS-коду не нужно взаимодействовать с токеном, то единственным безопасным вариантом является хранение токена в Cookie с атрибутами HttpOnly, SameSite, Secure. Однако, как быть, если такая необходимость есть? Хранить токен в localStorage?
😏 Чем плохо такое решение? Если хранить accessToken в localStorage, то при XSS у злоумышленника будет доступ к хранилищу браузера, и токен может быть украден.
На практике мне встречалась реализация, где разработчикии рыбку съели и токен хранили в Cookie, и подставляли его в HTTP Header через JS.
Как? Всё просто — они реализовали API, который возвращает в теле ответа все Cookie, которые передавались в HTTP запросе. JS-код брал токен из ответа и подставлял в HTTP заголовок Bearer для следующего запроса. По сути это обход защиты атрибута HttpOnly.
😏 Чем плох этот вариант? Помимо XSS, при небезопасной конфигурации CORS, злоумышленник сможет получить токен жертвы из ответа сервера, заманив ее на подконтрольный ресурс.
Существует еще одно решение — хранить токен в переменной JS и обернуть его в замыкание. Однако у злоумышленника останется возможность влиять на контекст выполнения. Поэтому, более безопасный метод - предотвратить вмешательство с помощью XSS в среду выполнения, которая имеет токен, достигая изоляции контекста. В веб-фронтенде это можно сделать с помощью Web Workers.
Идея заключается в том, чтобы поместить все запросы API в рабочий поток. Благодаря изоляции среды выполнения, если в рабочем потоке нет XSS, основной поток не может вмешаться в рабочего и не может получить доступ к его данным. Это обеспечивает безопасность токена.
Web Worker делится на три вида:
• Dedicated workers: используется только одним скриптом
• Shared workers: может использоваться несколькими скриптами в разных окнах/фреймах.
• Service Workers: выполняет роль прокси-сервера для взаимодействия между веб-приложением, браузером и сетью.
🔍 В этой статье описывается пример использование Dedicated Worker и обоснование отказа от Service Worker.
🔍 В этой статье, напротив, используется Service Worker + описываются другие примеры использования «прослойки» между фронтом и беком. Например, в кейсе, который я описывал выше (с API, которая возвращает Cookie в ответе), можно было бы использовать прокси на бэке, отказавшись вовсе от работы JS-кода с токеном в браузере пользователя.
Классический вопрос: «Где хранить accessToken на клиенте?».
Если JS-коду не нужно взаимодействовать с токеном, то единственным безопасным вариантом является хранение токена в Cookie с атрибутами HttpOnly, SameSite, Secure. Однако, как быть, если такая необходимость есть? Хранить токен в localStorage?
На практике мне встречалась реализация, где разработчики
Как? Всё просто — они реализовали API, который возвращает в теле ответа все Cookie, которые передавались в HTTP запросе. JS-код брал токен из ответа и подставлял в HTTP заголовок Bearer для следующего запроса. По сути это обход защиты атрибута HttpOnly.
Существует еще одно решение — хранить токен в переменной JS и обернуть его в замыкание. Однако у злоумышленника останется возможность влиять на контекст выполнения. Поэтому, более безопасный метод - предотвратить вмешательство с помощью XSS в среду выполнения, которая имеет токен, достигая изоляции контекста. В веб-фронтенде это можно сделать с помощью Web Workers.
Web Workers это механизм, который позволяет скрипту выполняться в фоновом потоке, который отделен от основного потока веб-приложения.
Идея заключается в том, чтобы поместить все запросы API в рабочий поток. Благодаря изоляции среды выполнения, если в рабочем потоке нет XSS, основной поток не может вмешаться в рабочего и не может получить доступ к его данным. Это обеспечивает безопасность токена.
Web Worker делится на три вида:
• Dedicated workers: используется только одним скриптом
• Shared workers: может использоваться несколькими скриптами в разных окнах/фреймах.
• Service Workers: выполняет роль прокси-сервера для взаимодействия между веб-приложением, браузером и сетью.
🔍 В этой статье описывается пример использование Dedicated Worker и обоснование отказа от Service Worker.
🔍 В этой статье, напротив, используется Service Worker + описываются другие примеры использования «прослойки» между фронтом и беком. Например, в кейсе, который я описывал выше (с API, которая возвращает Cookie в ответе), можно было бы использовать прокси на бэке, отказавшись вовсе от работы JS-кода с токеном в браузере пользователя.
Please open Telegram to view this post
VIEW IN TELEGRAM
MDN Web Docs
DedicatedWorkerGlobalScope - Web APIs | MDN
The DedicatedWorkerGlobalScope object (the Worker global scope) is accessible through the self keyword. Some additional global functions, namespaces objects, and constructors, not typically associated with the worker global scope, but available on it, are…
Forwarded from RedTeam brazzers (Миша)
Всем привет!
Обычно zabbix связан с базой PostgreSQL или MySQL. В некоторых случаях у вас может появиться возможность подключения к хосту, на котором эта самая база крутится. В таком случае вы сможете захватить весь Zabbix.
Алгоритм прост:
1. Вам следует получить доступ к базе, которая связана с Zabbix. Например, если вы получили RCE на Linux-сервере и смогли, допустим, повыситься до root, то переключайте контекст на пользователя postgres и аутентифицируйтесь на базе через psql. По умолчанию ph_hba.conf пустит вас без аутентификации.
2. Затем подключайтесь к базе zabbix
3. Теперь вам можно создавать собственного суперадмин-пользователя. Отмечу, что в базах MySQL и Postgres синтаксис команды будет немного отличаться. Для корректности добавления проверяйте необходимые для заведения поля вот так:
После чего добавляем собственного админ-пользователя:
4. Логинимся в Zabbix через главную страницу
Обычно zabbix связан с базой PostgreSQL или MySQL. В некоторых случаях у вас может появиться возможность подключения к хосту, на котором эта самая база крутится. В таком случае вы сможете захватить весь Zabbix.
Алгоритм прост:
1. Вам следует получить доступ к базе, которая связана с Zabbix. Например, если вы получили RCE на Linux-сервере и смогли, допустим, повыситься до root, то переключайте контекст на пользователя postgres и аутентифицируйтесь на базе через psql. По умолчанию ph_hba.conf пустит вас без аутентификации.
su postgres
psql
2. Затем подключайтесь к базе zabbix
psql> \c zabbix
3. Теперь вам можно создавать собственного суперадмин-пользователя. Отмечу, что в базах MySQL и Postgres синтаксис команды будет немного отличаться. Для корректности добавления проверяйте необходимые для заведения поля вот так:
select * from users;
После чего добавляем собственного админ-пользователя:
# Хеш bcrypt UNIX, база Postgres (pentest:pentest)
INSERT INTO users(userid, username, name, surname, passwd, url, autologin, autologout, lang, refresh, theme, attempt_failed, attempt_ip, attempt_clock, rows_per_page, timezone, roleid) VALUES (6, 'pentest', 'pentest', 'pentest', '$2a$10$dXwCQEKhvXk4tdRvt0Ra/OGUU0.LUc0f.q6i8u4yiejrO9qVNjT6u', '', 0, 0, 'default', '30s', 'default', 0, '', 0, 150, 'default', 3);
# Хеш md5, MariaDB
INSERT INTO users(userid, alias, name, surname, passwd, url, autologin, autologout, lang, refresh, type, attempt_failed, attempt_ip, attempt_clock, rows_per_page) VALUES (6, 'pentest', 'pentest', 'pentest', '46ea1712d4b13b55b3f680cc5b8b54e8', '', 0, 0, 'default', '30s', 'default', 0, '', 0, 150);
4. Логинимся в Zabbix через главную страницу
Forwarded from s0ld13r ch. (s0ld13r)
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Вредоносные расширения VSCode заражают ПК с Windows криптомайнерами
Исследователь ExtensionTotal Ювал Ронен обнаружил девять расширений VSCode на Visual Studio Code Marketplace от Microsoft, которые выдают себя за легитимные инструменты разработки, но заражают...
🔗Ссылка:
https://habr.com/ru/news/898682/
https://habr.com/ru/news/898682/
Forwarded from Adaptix Framework
Начал писать версию 0.4. Очень много нужно поменять в архитектуре экстендеров.
А пока покажу вот такие прикольные расширения: иногда легче "попросить" у пользователя учетные данные, нежели откуда-то извлекать)
P.S. pr на гите для расширений принимаются
А пока покажу вот такие прикольные расширения: иногда легче "попросить" у пользователя учетные данные, нежели откуда-то извлекать)
P.S. pr на гите для расширений принимаются
Forwarded from Ralf Hacker Channel (Ralf Hacker)
RemoteMonologue: Weaponizing DCOM for NTLM authentication coercions
PoC: https://github.com/xforcered/RemoteMonologue
Blog: https://www.ibm.com/think/x-force/remotemonologue-weaponizing-dcom-ntlm-authentication-coercions
#pentest #redteam #ad #creds #lateral
PoC: https://github.com/xforcered/RemoteMonologue
Blog: https://www.ibm.com/think/x-force/remotemonologue-weaponizing-dcom-ntlm-authentication-coercions
#pentest #redteam #ad #creds #lateral
Forwarded from Ralf Hacker Channel (Ralf Hacker)
И еще один хороший материал подъехал пол часа назад)
В блоге рассматривается шифрование MSSQL Server и методы подбора ключей.
https://specterops.io/blog/2025/04/08/the-sql-server-crypto-detour/
Что еще прикольное узнали из блога: ManageEngine ADSelfService по умолчанию использует ключ, который Microsoft показывает в качестве примера в своей справке😁 прикол конечно...
#pentest #redteam #sql #ad
В блоге рассматривается шифрование MSSQL Server и методы подбора ключей.
https://specterops.io/blog/2025/04/08/the-sql-server-crypto-detour/
Что еще прикольное узнали из блога: ManageEngine ADSelfService по умолчанию использует ключ, который Microsoft показывает в качестве примера в своей справке😁 прикол конечно...
#pentest #redteam #sql #ad
SpecterOps
Blog - SpecterOps
Your new best friend: Introducing BloodHound Community Edition!
Forwarded from Ralf Hacker Channel (Ralf Hacker)
Decrypting Yandex Browser passwords
Soft: https://github.com/Goodies365/YandexDecrypt
@exited3n переписал на python:
Soft: https://github.com/akhomlyuk/Ya_Decrypt
P.S. Yandex Doc: https://yandex.com/support/browser-passwords-crypto/ru/with-master
#creds #pentest #redteam #ad
Soft: https://github.com/Goodies365/YandexDecrypt
@exited3n переписал на python:
Soft: https://github.com/akhomlyuk/Ya_Decrypt
P.S. Yandex Doc: https://yandex.com/support/browser-passwords-crypto/ru/with-master
#creds #pentest #redteam #ad
❤1
Forwarded from Кибер ПТУ | Кибербезопасность
Не одним htb едины
Гонял тут меня недавно один крутой АппСек на собеседовании по антипаттернам в коде, которые могут привести к эксплуатации типовых уязвимостей в продакшене. Психика конечно пострадала (не только моя), но зато потом я сел и начал искать способы тренировки этого навыка. А то кажется, что делать это вдали от реального Git-а и SAST-а не так уж и просто. И я нашел.
В общем, это почти как Hack The Box или Try Hack Me, но для АппСек-ов. Заходим, выбираем челлендж и ищем уязвимости в коде. А вот и сам сервис – ссылка
#AppSec
🧠 Твой Пакет Знаний | 👨🏫 Менторство ИБ
📂 Другие каналы
Гонял тут меня недавно один крутой АппСек на собеседовании по антипаттернам в коде, которые могут привести к эксплуатации типовых уязвимостей в продакшене. Психика конечно пострадала (не только моя), но зато потом я сел и начал искать способы тренировки этого навыка. А то кажется, что делать это вдали от реального Git-а и SAST-а не так уж и просто. И я нашел.
В общем, это почти как Hack The Box или Try Hack Me, но для АппСек-ов. Заходим, выбираем челлендж и ищем уязвимости в коде. А вот и сам сервис – ссылка
#AppSec
Please open Telegram to view this post
VIEW IN TELEGRAM
blog.poxek.cc
Kubernetes Security Hardening: от основ до продвинутых техник защиты
Комплексное руководство по защите Kubernetes кластеров – от базовых настроек до продвинутых техник безопасности и рекомендаций экспертных организаций.