2016-01-04 2 views
1

Представьте, что у вас большое сотрудничество. Теперь кто-то нашел уязвимость CSRF, которая работает только через собственный сайт (так как сайт защищен проверкой заголовка Referer-Header, маркером CSRF). Это может выполнять критические действия, но только если запрос поступает с вашего сайта. Это означает, что небольшая атака XSS может выполнять более крупные действия с помощью этой уязвимости. Вы считали бы это критической уязвимостью и должны ли это вознаграждаться как атака CSRF?Вы считаете следующий сценарий как (опасный) CSRF?

+0

Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что не связано непосредственно с программированием. // Как ненадежный реферер, должно быть общеизвестным - поэтому, если часть вашей «безопасности» основана на нем, это уже плохая новость. – CBroe

+1

Прошу прощения, но я обнаружил уязвимость в большом сотрудничестве, которое имеет именно этот сценарий. Существуют ли другие способы выполнения атаки, кроме XSS, или с использованием слабых сторон старых браузеров? Я просто хочу подготовиться к задаче, который они могут задать (если они спросят любого или решили отказаться от награды). Редактировать: Действительно ли они действительно ненадежны. Я искал в Интернете и нашел несколько источников, которые сказали, что это нормально, но не лучший метод. – nullexception

ответ

1

Это называется On Site Request Forgery.

Уязвимость XSS всегда превосходит любую атаку CSRF/OSRF. Подумайте, если формы не были защищены реферированием, но были защищены токеном, атака XSS могла просто прочитать токен из DOM и затем отправить форму.

Таким образом, на сайте нет дополнительного риска. Единственным исключением из этого является то, что у вас есть Open Redirect Vulnerability в сочетании с небезопасным действием, реализованным как GET.

Say следующий URL доступен:

https://example.com/delete_my_account 

Обработчик проверяет реферер, чтобы убедиться, что запрос исходит от https://example.com/*.

Однако есть и другой доступный URL, который выдает JavaScript перенаправляет:

https://example.com/redirect_to_site 

Это будет называться следующим образом в пределах сайта, чтобы отслеживать внешние ссылки:

https://example.com/redirect_to_site?https://google.com 

Однако атака OSRF бы возможно путем создания атаки CSRF, перенаправляющей примерно на следующее:

https://example.com/redirect_to_site?https://example.com/delete_my_account 

Поскольку референт отмечен, это подтвердит запрос, потому что только delete_my_account проверяет референта здесь, поскольку это считается небезопасным действием. Однако, поскольку он может быть перенаправлен по незащищенному обработчику, он может победить защиту реферера.

Таким образом, если на сайте нет такой функциональности или если сайт не позволяет контенту пользователя создавать такие ссылки, нет никакой уязвимости при проверке ссылки для защиты CSRF.

Примечание: Прежде чем кто-нибудь отметит, что заголовок реферирования может быть подделан, это возможно только из собственного соединения злоумышленника. В атаке CSRF вам нужно, чтобы это было подделано на соединение жертвы - CSRF является атакой другого пользователя, поэтому, хотя реферист является слабой защитой, во многих случаях он по-прежнему адекватен.

Смежные вопросы