Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   REFERER как защита от CSRF (https://forum.antichat.xyz/showthread.php?t=142981)

pento 22.09.2009 16:32

REFERER как защита от CSRF
 
Всем привет!
Анализируя очерендное веб-приложение на предмет уязвимостей, столкнулся с тем, что проверяется REFERER перед обработкой данный критичных операций. Конретно проверяется протокол + хост.При этом других защитных мер от CSRF нет. Вопрос, можно ли обойти подобную защиту? Погуглив, нашёл только варианты с Flash и то старых версий.

warlok 22.09.2009 17:01

Можно конечно, подделав рефер на нужный тебе. Например через RefControl (плагин для мазилы) ну или самому состряпать скриптик что впринципе и войдет в сплойт для твоей CSRF баги.

pento 22.09.2009 17:17

Цитата:

Сообщение от warlok
Можно конечно, подделав рефер на нужный тебе. Например через RefControl (плагин для мазилы) ну или самому сострямать скриптик что впринципе и войдет в сплойт для твоей CSRF баги.

Хммм, я поясню. CSRF - уязвимость, где веб-браузер жертвы посылает злонамеренный HTTP-запрос. То есть подобных плугинов у жертвы, само собой, нет. Старые варианты по сути эксплуатировали уязвимости браузера (IE) и flash-дополнения.

warlok 22.09.2009 18:51

Цитата:

CSRF - уязвимость, где веб-браузер жертвы посылает злонамеренный HTTP-запрос
хм, а разве если ты сам подделываеш и отсылаеш запрос (например на добавление нового админа или смены пароля) неявляеться CSRF ? а так получаеться что нужно копать в сторону подделки рефера на js, а так я чесно незнаю даж как реализовать.

Shred 22.09.2009 18:55

jQuery Ajax Header пробовал?
http://docs.jquery.com/Ajax
http://snipplr.com/view/9869/set-jquery-ajax-header/

[Raz0r] 22.09.2009 19:46

Если имеется CSRF без XSS, то защита с помощью проверки referer является довольно надежной, хотя подделка этого заголовка в обычных условиях труда не составляет.

pento 22.09.2009 23:11

Цитата:

Сообщение от [Raz0r]
Если имеется CSRF без XSS, то защита с помощью проверки referer является довольно надежной, хотя подделка этого заголовка в обычных условиях труда не составляет.

В том-то и прикол, что бы без XSS :) А что значит обычные условия?
Просто основным методом защиты от CSRF является использование токенов, то есть фактически подписывание запросов. Проверка REFERER обычно упоминается всколзь и делается упор на то, что он является не совсем надёжным фактором подтверждения отправителя HTTP-запроса. Ну и упоминаются ранее мной озвученные методы его подмены, но те баги уже зафиксены вроде как.

pento 22.09.2009 23:16

Цитата:

Сообщение от warlok
хм, а разве если ты сам подделываеш и отсылаеш запрос (например на добавление нового админа или смены пароля) неявляеться CSRF ? а так получаеться что нужно копать в сторону подделки рефера на js, а так я чесно незнаю даж как реализовать.

Рекомендую почитать http://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)

pento 22.09.2009 23:17

Цитата:

Сообщение от Shred
jQuery Ajax Header пробовал?
http://docs.jquery.com/Ajax
http://snipplr.com/view/9869/set-jquery-ajax-header/

Хммм, по идеи аякс не должен такое позволять делать, но посмотрю.
Спасибо.

[Raz0r] 22.09.2009 23:21

Под обычными условиями я имел в виду, что referer можно изменить, отправляя запрос самому, но не при автоматическом обращении браузера по разным адресам, указанных в атрибуте src тэгов iframe, img и т.д.
Цитата:

он является не совсем надёжным фактором подтверждения отправителя HTTP-запроса
Действительно так, например, в ситуации, когда у обычного пользователя и администратора есть доступ к одной странице, но ее функционал зависит от привилегий пользователя, то защита по referer не спасет, здесь применимы только токены.


Время: 21:58