#41 Bug Bounty. Cross Site Request Forgery (CSRF).
Здравствуйте, дорогие друзья.
Введение
Cross Site Request Forgery (CSRF) — это атака на пользователя приложения, заставляющая браузер отправлять запросы от имени злоумышленника. Этот вид атак может использоваться для изменения пароля пользователя и электронной почты, например страницы или видео, отправки денег злоумышленнику и все, что Вы можете сделать с помощью POST-запроса.
CSRF
Чтобы использовать CSRF, пользователь должен войти в целевую сеть, и посетить вредоносный сайт, в том же браузере. Используя JavaScript, возможна отправка запросов на сайты от имени пользователей через их куки. Итак, если пользователь посещает сайт, контролируемый злоумышленниками, мы можем использовать JavaScript для отправки POST-запроса, с использованием файлов cookie жертвы.
Это позволит злоумышленнику отправить аутентифицированный запрос через браузер жертвы. Предположим, приложение позволяет пользователям изменять свою электронную почту, отправляя форму. Если приложение не защищает от CSRF-атак, злоумышленники могут заставить пользователей изменить свой адрес электронной почты на адрес, контролируемый хакерами. После этого злоумышленник может выполнить сброс пароля, чтобы изменить пароль пользователя и взять на себя его учетную запись.
Как Вы можете видеть в приведенном выше запросе, нет ни токена CSRF, ни аутентификации. Приложению не удается проверить заголовок ссылки. Мы должны быть в состоянии выполнить атаку CSRF, но чтобы убедиться в этом, Вы должны создать proof of concept (POC) страницу.
<html>
<form id=»exploit» action=»https://acc71f681f28327e80e13486006a005a.web-security-
academy.net/email/change-email» method=»post»>
<input name=»email» value=»attack@test.com»>
<input type=’submit’ value=’submit’>
</form>
<script>
document.getElementById(«exploit»).submit()
</script>
</html>
Приведенный выше код можно использовать в качестве POC, для доказательства возможности CSRF. Это также хорошая идея, чтобы убедиться, что что-то действительно можно использовать, прежде чем отправлять отчет.
Вывод
CSRF — действительно старая уязвимость, но я все еще постоянно сталкиваюсь с ней. Если Вы тестируете приложение с учетными записями пользователей, то Вы всегда должны проверять CSRF. Если приложение не защищает от нее, Вы можете использовать уязвимость для изменения адреса электронной почты пользователей, паролей и все, что Вы хотите.
На этом все. Всем хорошего дня!
#1 Bug Bounty. Подготовка к Bug Bounty. Введение.
#2 Bug Bounty. Организация. Введение.
#3 Bug Bounty. Заметки. Введение.
#4 Bug Bounty. Подготовка к охоте. База знаний.
#6 Bug Bounty 101. Выбор платформы.
#7 Bug Bounty. Выбор правильной цели.
#8 Bug Bounty. Методология — рабочие процессы.
#9 Bug Bounty. Рабочий процесс GitHub.
#10 Bug Bounty. Гугл Дорки Рабочий процесс.
#11 Bug Bounty. Эксплойты — Рабочий процесс.
#12 Bug Bounty. CMS — Рабочий процесс.
#13 Bug Bounty. Брутфорс — Рабочий процесс.
#14 Bug Bounty. Раздел 2. Разведка.
#15 Bug Bounty. Reverse Whois.
#17 Bug Bounty. Разведка — Фаза 2. Словарь.
#18 Bug Bounty. Перечисление поддоменов.
#19 Bug Bounty. Поисковый движок.
#20 Bug Bounty. Перестановка поддоменов.
#21 Bug Bounty. Разрешения DNS.
#22 Bug Bounty. Wayback Machine crawl data.
#23 Bug Bounty. Проверка файлов JavaScript.
#25 Bug Bounty. Часть 8: Фаза fingerprint.
#26 Bug Bounty. Censys. Nmap. Masscan.
#27 Bug Bounty. Веб-приложение.
#28 Bug Bounty. Этап эксплуатации.
#30 Bug Bounty. Неправильно настроенные сегменты облачного хранилища.
#31 Bug Bounty. Облачное хранилище Google.
#32 Bug Bounty. Elastic Search DB.
#34 Bug Bounty. Kubernetes API.
#36 Bug Bounty. Эксплуатация CMS. WordPress.
#37 Bug Bounty. Joomla. Drupal. Adobe AEM.
#38 Bug Bounty. Эксплуатация OWASP. XML External Entity (XXE).