2. Веб-безопасность (xss/csrf) Простые принципы атаки и схемы защиты (реальный бой)

Безопасность
Введение: Недавно я изучал Node, и, кстати, я написал примеры и решения для атак на веб-безопасность. Сославшись на некоторые материалы, я сам об этом подумал, код не очень совершенен, да и узел тоже в стадии исследования, прошу меня простить. Надеюсь, он будет полезен тем студентам, которые не очень хорошо знакомы с безопасностью и имеют неясные базовые знания.

Смотрите предыдущую статью для решения (Теория), здесь в основном демонстрируется принцип атаки

Код:git@github.com:StyLanQP/web-Safe.git

гитхаб-адрес:GitHub.com/St с LAN QP/Tower…

Код проекта выглядит следующим образом:

приложение: обычный сайт
взломать: веб-сайт, имитирующий взлом
Используемая технология: node+express+react+mysql

Введение в проект

1. Каталог кодов

WechatIMG3062.jpeg

2. Создайте базу данных

WechatIMG31.jpeg

node app/mysql.js сначала запустите этот файл для создания таблиц и данных

WechatIMG32.jpeg

как показано на рисунке

WechatIMG30.jpeg

1. XSS (межсайтовый скриптинг) Атака межсайтового скриптинга

Принцип: Злоумышленник вставляет вредоносный исполняемый код сценария веб-страницы в веб-страницу. Когда пользователь просматривает страницу, код сценария, встроенный в Интернет, будет выполнен, так что злоумышленник может украсть информацию о пользователе или иным образом нарушить безопасность пользователя.Цели конфиденциальности .

1. В это время запустите проект npm run start, чтобы открыть домашнюю страницу.

WechatIMG33.jpeg

WechatIMG34.jpeg

WechatIMG36.jpeg

В настоящее время домашняя страница написана с помощью шаблона реакции.React DOMСодержимое (строка) будет экранировано при рендеринге, поэтому метка в виде строки не будет использоваться какHTMLтеги обрабатываются, поэтому входной скрипт не может быть выполнен

Поэтому добавьте страницу xss.html, которая загружается с использованием шаблона ejs (независимо от того, вводит ли она тег скрипта из URL-адреса, напримерhttp://localhost:4000/xss?text=Или сразу получить код, хранящийся в базе данных, будет выполнен)

WechatIMG38.jpeg WechatIMG37.jpeg

WechatIMG39.jpeg

2. Начните использовать атаку document.cookie и измените ее на атаку по методу, который только что был

Открытымhttp://localhost:4000/xss увидит интерфейс, запрашивающий http://localhost:5000/xss.html WechatIMG41.jpeg

В консоли вы можете увидеть, что веб-сайт хакера на порту 5000 распечатал файл cookie. Используя файл cookie, мы можем установить файл cookie на консоли для входа непосредственно на веб-сайт.WechatIMG42.jpeg

2. Межсайтовая подделка CSRF

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

1. В состоянии входа в систему откройте страницу localhost:5000/csrf.html. В консоли мы видим запрос setDataList. Это интерфейс для отправки контента. На домашней странице 4000 мы видим, что контент изменилось.image.png

Обычное содержимое веб-сайта измененоWechatIMG44.png

image.png

Решение (сгенерировать токен, вывести на интерфейс nonce и timesTamp)

WechatIMG47.jpeg

WechatIMG46.jpeg

3. Нажмите Взлом

Принцип: после входа пользователя в систему веб-сайта А у злоумышленника возникает соблазн открыть сторонний веб-сайт, а сторонний веб-сайт вводит содержимое страницы веб-сайта А через iframe, а пользователь нажимает кнопку (оформленную button) на стороннем веб-сайте. , который на самом деле нажимает кнопку на веб-сайте А.

  1. Открытымhttp://localhost:5000/clickHijack.html Нажатие кнопки фактически щелкает кнопку перехода по адресу http://localhost:4000/home, поскольку iframe встраивает страницу 4000

30.jpeg

31.jpeg

WechatIMG50.jpeg

Решение, ограничить встраивание iframe

image.png

использованная литература

Атака против воспроизведения на основе метки времени и одноразового номера

Проблемы, связанные с заголовком безопасности протокола HTTP X-Content-Type-Options

Видео веб-безопасности Учителя Ся, отправленное другом, не может поместить ссылку

веб-безопасность csrf защита и атака