HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Веб-уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 13.12.2024, 20:19
kylukov
Новичок
Регистрация: 12.12.2024
Сообщений: 17
С нами: 748687

Репутация: 0
По умолчанию

Цитата:

Нет, в этой статье не пойдет речь о приготовлении вкусного томатного или сырного супа. В данной статье пойдет речь о таком инструменте как Same-origin Policy и от чего он помогает защищаться, но перед тем, как разбираться, что такое “SAME” и “POLICY” нужно понимать значение термина ORIGIN, с ним и разберемся в первую очередь.

Что такое origin?

Если кратко, то Origin — это адрес, с которого отправлен запрос. Он состоит из протокола, домена и порта. Его отправляют в заголовке HTTP-запроса.

Вот пример простейшего origin’a
  • Схема (scheme): https — указывает на использование защищенного протокола HTTP.
  • Хост (host) / eTLD+1: античат — это доменное имя, являющееся одновременно eTLD+1 в данном случае, так как не содержит поддоменов (например, www.codeby.games). « .games » — это домен верхнего уровня (TLD).
  • Порт (port): 443 — это номер порта, используемый для соединения. 443 — стандартный порт для HTTPS, его часто опускают в записи origin, поскольку он подразумевается по умолчанию, если используется схема https.

Но origin также может содержать большее количество составляющих, например



Теперь, когда у нас сформировалось понимание данного термина можно задаться вопросом, зачем мы это пытались понять, не правда ли?

Так вот, на данный момент все действия в интернете происходят в парадигме «клиент-серверного» взаимодействия, значит клиент (origin), что-то отправляет, а сервер что-то получает (site) или наоборот.



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

Только, что мы с вами пришли к атаке типа CSRF (cross-site request forgery), не будем сильно останавливаться не ней, лишь отметим, что суть данной атаки заключается в цепочки действий, позволяющих злоумышленнику с помощью мошеннического сайта или скрипта заставить браузер пользователя выполнять на доверенном сайте действия от его имени: отправлять сообщения, менять пароли, переводить деньги и тд.

Одним из способов защиты от подобных действий является настройка политики SOP.

Что же все-таки за SOP?

Политика одинакового источника (same-origin policy) определяет как документ или скрипт, загруженный из одного источника (origin), может взаимодействовать с ресурсом из другого источника. Это помогает изолировать потенциально вредоносные документы, снижая количество возможных векторов атак.

Здесь мы вспоминаем понятие origin и учимся их отличать. У нас есть ресурс, с которого какой-то скрипт делает запрос, который имеет право на взаимодействие с origin: http://example[.]com/dir/page.html

Рассмотрим возможные варианты взаимодействий при наличии SOP:

Сравниваемый URLПроверкаПричинаhttp[:]//www.example.com/dir/page[.]htmlСоответствуетТот же протокол и доменhttp[:]//www.example.com/dir2/other[.]htmlСоответствуетТот же протокол и доменhttp[:]//username[:]password@www[.]example[.]com/dir2/other.htmlСоответствуетТот же протокол и доменhttp[:]//www[.]example[.]com[:]81/dir/other[.]htmlНе соответствуетТот же протокол и домен, но другой портhttps[:]//www[.]example[.]com/dir/other[.]htmlНе соответствуетОтличается протоколhttp[:]//en[.]example.com/dir/other[.]htmlНе соответствуетОтличается доменhttp[:]//example[.]com/dir/other[.]htmlНе соответствуетОтличается домен (требуется полное соответствие)http[:]//v2[.]www[.]example[.]com/dir/other[.]htmlНе соответствуетОтличается домен (требуется полное соответствие)http[:]//www[.]example[.]com[:]80/dir/other[.]htmlНе определеноЯвное указание порта. Зависит от реализации в браузере.

Практика

Теперь мы понимаем как работает политика SOP, давайте попробуем посмотреть на практике как выглядит импакт, который она приносит.

Для этого создадим два виртуальных сервера NGINX, один будет называться hacker.com, а второй bank.com, но для начала установим и сконфигурируем NGINX

Bash:


Код:
sudo
apt
install
nginx
sudo
service
nginx start


Теперь пропишем конфигурации для наших двух виртуальных хостов, для этого перейдем в директорию
Код:
/etc/nginx/sites-available
и создадим два файла
Код:
hacker.com
и
Код:
bank.com
ФАЙЛ hacker.com

server {
listen 80;
server_name hacker.com;
root /var/www/hacker.com;
index index.html;
}ФАЙЛ bank.com

server {
listen 80;
server_name bank.com;
root /var/www/bank.com;
add_header Set-Cookie "user=bankUser; Secure; HttpOnly; SameSite=None";
index index.html;
}

Далее создадим простейшие начальные страницы для каждого сайта


Bash:


Код:
sudo
mkdir
-p /var/www/hacker.com /var/www/bank.com
echo
'Hacker.com'
>
/var/www/hacker.com/index.html
echo
'Bank.com'
>
/var/www/bank.com/index.html
Теперь нам осталось только «активировать» наши создание виртуальные сервера, перезапустить nginx и добавить наши origin в файл
Код:
/etc/hosts
, а сделать это можно с помощью команд

Bash:


Код:
sudo
ln
-s /etc/nginx/sites-available/hacker.com /etc/nginx/sites-enabled/
sudo
ln
-s /etc/nginx/sites-available/bank.com /etc/nginx/sites-enabled/
sudo
systemctl restart nginx


Теперь у нас есть два собственных сайта,



Теперь настало время воровать куки, для этого сначала создадим js код, который будет воровать cookie с домена bank.com (представим, что эти куки используются для подтверждения входа в ЛК банка)

Для этого пишем скрипт hack.html



И пытаемся его выполнить в нашем браузере и видим в запросах успешно вернувшийся ответ от bank.com, который содержит наши cookie



И вуаля, наши cookie у нас в кармане
Заключение

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

Тем не менее, как и любой инструмент, SOP имеет свои ограничения и должен использоваться в сочетании с другими мерами безопасности, такими как политика совместного использования ресурсов (CORS), о которой мы поговорим немного позже.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.