Вводная

Цель работы

Ознакомиться с принципами использования и защиты от XSS.

Определение

XSS (англ. Cross-Site Scripting — «межсайтовый скриптинг») — тип атаки на веб-системы, заключающийся во внедрении в выдаваемую веб-системой страницу вредоносного кода (который будет выполнен на компьютере пользователя при открытии им этой страницы) и взаимодействии этого кода с веб-сервером злоумышленника. Является разновидностью атаки «внедрение кода».

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

Для термина используют сокращение «XSS», чтобы не было путаницы с каскадными таблицами стилей, использующими сокращение «CSS».

Подробнее про классификацию, примеры и средства защиты от XSS можно прочитать здесь или в любом другом аналогичном источнике.

Большинство современных браузеров обладают некоторой степенью защиты от XSS, но для демонстрации уязвимости вы можете выключить эту защиту при помощи настроек браузера или флагов. Например, для chrome это можно сделать при помощи флага запуска "--disable-web-security"

Задание

  • Определите свой Вариант путём определения целочисленного остатка деления ASCII кода 1 буквы фамилии (в верхнем регистре) на 4 . Например, если ваша фамилия Иванов, то вариант вы можете получить запросом
    SELECT MOD(ORD("И"),4)+1
    
  • Реализуйте демонстрацию использования XSS на своём тестовом проекте согласно полученному варианту:
    1. Отражённая XSS атака, заставляющая пользователя перейти на целевой веб сайт;
    2. Постоянная XSS атака, передающая COOKIE пользователя на целевой веб сайт;
    3. Кража данных из формы ввода с передачей на целевой сайт;
    4. Пример использования XSS для DDoS атаки;
  • Реализуйте корректное исправление данной уязвимости

Вопросы

  1. Назовите типы XSS по каналу внедрения;
  2. Назовите типы XSS по вектору атаки;
  3. Перечислите возможные последствия XSS;
  4. Может ли XSS повредить серверу, на котором размещён уязвимый сайт?
  5. Перечислите возомдные способы защиты от XSS.