Изучил интересную уязвимость под названием Cookie Tossing (подброс cookie). Эта уязвимость может позволить злоумышленнику украсть сессию, получить доступ к аккаунту или даже выполнить действия от вашего имени без вашего ведома.
Cookie Tossing — это уязвимость, возникающая из-за некорректной обработки cookie браузером и сервером, позволяющая злоумышленнику внедрить поддельные cookie в домен или поддомен приложения.
▎Как это работает?
Сookie, установленные для домена example.com, отправляются браузером во все поддомены (например, sub.example.com). Если злоумышленник уже контролирует поддомен, он может установить cookie для родительского домена example.com с целью атаки на легитимных пользователей. Получить контроль над поддоменом возможно через сторонние уязвимости или социальной инженерией, но мы это рассматривать в рамках этого поста не будем.
Когда пользователь посещает example.com, браузер отправляет все cookie, соответствующие этому домену, включая поддельные, которые установил злоумышленник, контролирующий поддомен.
▎Выходит следующее:
Cервер получает несколько cookie с одинаковым именем (например, session_id=user и session_id=hacker). И если злоумышленник управляет порядком или значением cookie (либо сервер сам возьмёт второе значение cookie среди двух одинаковых имён), — это может привести к краже сессий, обходу аутентификации, подмене CSRF-токенов для выполнения вредоносных запросов и т.д. Злоумышленник подменяет cookie пользователя, чтобы сервер ассоциировал запросы пользователя с аккаунтом злоумышленника или выполнял действия, выгодные ему.
▎Если приложение не принимает запросы с файлами cookie с одинаковым именем и разными значениями, можно попробовать следующие хитрости:
➡️Переполнить легитимные cookie на cookie атакующего. Подробнее: Cookie Jar Overflow.
➡️Попробовать изменить имя cookie, используя URL-кодировку, разный регистр букв, экстра-символы (например, %00, %20, %09) и т.д.
▎Рекомендации по устранению уязвимости:
✅Использовать префиксы __Host- и __Secure-, что предотвратит подмену cookie через поддомены;
✅Ограничить область действия cookie конкретным поддоменом;
✅Регулярно проверять DNS-записи на наличие неиспользуемых поддоменов (исключить его перехват);
✅Дополнительно следует внедрить проверку cookie на сервере, чтобы отклонять подозрительные запросы.
Печеньки — это не только сладко, но и хакнуто.
#хакинг
