Возможен ли CSRF / clickjacking после очистки куки?
Насколько я понимаю, CSRF и Clickjacking используют тот факт, что браузер автоматически включает файлы cookie в запросы к веб-странице (то есть к тем, которые пришли с этого домена).
Таким образом, злоумышленник подготовит вредоносный сайт и позвонит по некоторому URL (например, Gmail) в надежде, что файлы cookie для этого URL все еще сохранены в моем браузере. Или они могут каким-то образом выяснить, на каких веб-страницах я захожу в данный момент на другой вкладке, а затем адаптировать свою атаку к этому?
И мой более актуальный вопрос: после того, как я очистил кеш браузера или правильно вышел из системы, эти две атаки невозможны, не так ли?
1 ответ
Злоумышленник, владеющий веб-сайтом и посещающий его (стандартный сценарий CSRF), как правило, в последних браузерах не может узнать, какие другие веб-сайты открываются на разных вкладках браузера (хотя время от времени появлялось несколько уловок, например, для пример попытки встроить аутентифицированный ресурс с предполагаемого веб-сайта и проверить, не приводит ли это к ошибке, указывающей, что вы не вошли в систему - классика). Но они также могут просто угадать и выполнить слепую атаку - возможно, они не будут знать, удалось ли это в конкретном случае, но иногда достаточно, если бывают случайные успехи, неважно, какие именно. CSRF - это CSRF, независимо от того, может ли злоумышленник выяснить, сработал ли он. Они все еще могут быть полезны в более сложных атаках как строительный блок.
Что касается вашего другого вопроса - конечно, если ваш браузер не отправляет информацию об аутентификации, CSRF невозможен. Обратите внимание, что это не означает, что файлы cookie, базовая аутентификация HTTP также сохраняется для сеанса, и клиентские сертификаты также отправляются автоматически. Может быть незначительный, но иногда довольно важный.:) Также обратите внимание, что простой выход из пользовательского интерфейса не обязательно делает CSRF недействительным - серверу также необходимо правильно выйти из системы, что не всегда так. Для простого примера рассмотрим единый вход в систему SAML, где у вас есть долгосрочный сеанс с поставщиком удостоверений и недолговечный сеанс с приложением. Вы нажимаете кнопку "Выйти", сеанс приложения прекращается, но не может быть единого выхода. Когда CSRF затем пытается что-то наподобие полной http-записи, вы можете быть перенаправлены в IdP, а затем в приложение, которое может автоматически войти в систему, и выполненное действие - без какого-либо взаимодействия с пользователем, облегчая CSRF. Снова, может быть, крайний случай, но все это в некотором смысле касается крайних случаев.