Понимание уязвимости CSRF (руководство для начинающих) (Ч.1)

Борис_бритва

Script Kiddie
21.09.2020
10
0
1
Вы всегда меняете пароль своей учетной записи, когда хотите, но что, если ваш пароль меняется всякий раз, когда злоумышленник хочет, и что если вы не знаете об этом? Сегодня в этой статье мы узнаем основные понятия об атаках CSRF или о том, как злоумышленник вынуждает пользователя выполнить некоторые нежелательные действия, которые он (пользователь) никогда не собирался делать.

Что такое файлы cookie и идентификатор сеанса?

Прежде чем переходить к CSRF-атакам и к тому, как такие атаки выполняются, нам нужно понять некоторые важные термины, которые в той или иной степени обеспечивают безопасность приложений.

Cookies

Файлы cookie - это в основном небольшие текстовые файлы размером не более 4 КБ, которые хранятся в браузере клиента в виде пары имя-значение. Файлы cookie в основном используются для отслеживания или отслеживания активности клиента в веб-приложении и даже хранят некоторые конфиденциальные данные, такие как имя пользователя, идентификатор сеанса, настройки пароля и т. Д., Которые, таким образом, могут быть отправлены обратно на сервер для запроса аутентификации.

ID сеанса

Подобно файлам cookie, сеансы также представляют собой небольшие файлы, но они создаются и хранятся на стороне сервера. Каждый сеанс связан с идентификатором сеанса. Таким образом, когда пользователь входит в систему, создается сеанс с идентификатором сеанса, таким образом, этот идентификатор сеанса смешивается с файлом cookie и сохраняется в браузере клиента и, таким образом, передается обратно на веб-сервер всякий раз, когда браузер выполняет HTTP-запрос.

Поэтому всякий раз, когда клиент выходит из системы или браузер закрывается, эти сеансы прекращаются. И при каждом новом входе в систему создается новый сеанс с идентификатором сеанса.

Давайте проясним это на примере следующего сценария:


1600669948616.png

Теперь, когда пользователь посещает какой-либо другой раздел того же приложения, идентификатор сеанса, сохраненный в браузере пользователя, отправляется на сервер для проверки.

1600669977649.png

Что такое СОП?
SOP - это аббревиатура от Same-Origin Policy, которая является одной из наиболее важных концепций в модели безопасности веб-приложений. В соответствии с этой политикой веб-браузер разрешает сценариям, содержащимся на первой веб-странице, получать доступ к данным на второй веб-странице, но это происходит только тогда, когда обе веб-страницы работают с одним и тем же портом, протоколом и источником.

Например:
Скажем, веб-страница «https://www.ignitetechnologies.com/ceh/module1.pdf» может напрямую получить доступ к содержимому по адресу «https://www.ignitetechnologies.com/network/RDP/module7.docx».
Но он не может получить доступ к данным из «https://www.ignitetechnologies.com:8080/bug/xss.pdf». Поскольку теперь порт был изменен между ними.


Введение в CSRF-атаки

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

Чтобы быть более ясным, давайте рассмотрим следующий сценарий -

Здесь пользователь «Аарти» получает письмо от злоумышленника, когда она осуществляла банковский перевод на счет г-на Раджа Ченделя. Она оставила транзакцию незавершенной и проверяет свою почту в новой вкладке.

Там она получила общий URL-адрес, в котором говорилось, что «Вы получили определенную сумму в качестве вознаграждения». Теперь, когда она открывает URL-адрес на следующей вкладке, у нее появляется кнопка «Взять». Страница транзакции была закрыта на другой вкладке, а эта вредоносная страница находится на следующей. Как только она нажимает кнопку отправки, запрос выполняется, и сумма снимается со счета Аарти без ее ведома или беспокойства.


1600670198473.png

Влияние уязвимости CSRF

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

Изменение адреса электронной почты или пароля жертвы.
Покупка чего угодно.
Совершение банковской транзакции.
Явный выход пользователя из его учетной записи.
Таким образом, эта уязвимость была включена в список 10 лучших уязвимостей OWASP в 2013 году. Таким образом, теперь она получила оценку CVSS «6,8» со «средней» серьезностью ниже

CWE-352: подделка межсайтовых запросов (CSRF).


CSRF Эксплуатация

Давайте начнем!!

В этом разделе я использовал уязвимое веб-приложение bWAPP и создал учетную запись с пользователем Raj: ignite для входа на веб-сервер.


1600670340644.png


Управление данными учетной записи пользователя

На изображении выше вы можете видеть, что для создания нового пользователя пользователь Raj установил свое секретное значение как «кто вы?». Теперь, если он хочет изменить это секретное значение, он может изменить его отсюда.

1600670945908.png
Но что, если его секретное значение изменится на желаемое злоумышленником без его ведома?

Давайте посмотрим, как это сделать !!

Давайте откроем целевой IP-адрес в нашем браузере, и мы установим для параметра «Выбрать ошибку» значение «Межсайтовый запрос-подделка» (изменить секрет).

Здесь мы будем перенаправлены на веб-страницу, подверженную уязвимости CSRF, где вы увидите, что у нас есть возможность изменить секретное значение.

1600671012032.png
Теперь давайте «нажмем кнопку изменения» и зафиксируем проходящий HTTP-запрос.

Из изображения ниже видно, что мы успешно получили запрос. Пришло время создать поддельную HTML-форму. Для этого щелкните правой кнопкой мыши в любом месте экрана и выберите инструменты взаимодействия, а затем нажмите «Создать CSRF PoC».

1600671056162.png
Этот генератор CSRF PoC автоматически сгенерирует страницу HTML-формы. Теперь нажмите «Копировать HTML», чтобы скопировать весь HTML-код, а затем скопированные данные в текстовый файл.
1600671094807.png

Большой!! Давайте поработаем с параметром secret value = «» с помощью «hackingarticles», а затем сохраним этот файл как «csrf.html». Кроме того, нам нужно указать имя пользователя Raj, для которого будет изменяться секретное значение.

1600671128900.png
Теперь мы воспользуемся техникой социальной инженерии, чтобы поделиться этим файлом csrf.html с целевым пользователем.

Как только жертва Радж откроет этот csrf.html, он получит кнопку отправки, когда он щелкнет по ней, его секрет будет изменен без его (жертвы) ведома.

1600671162205.png


ПРОДОЛЖЕНИЕ НА ФОРУМЕ
 

Об LS-LA

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

About LS-LA

  • We, a group of like-minded people, whose main goal is to increase the level of knowledge and skills.
    Not forgetting about everyone’s material well-being)

Быстрая навигация

Пользовательское меню