Відбитий XSS

Відбитий XSS

Уся атака вміщується в посилання, яке вам надіслали.

Що таке Відбитий XSS?

Відбитий міжсайтовий скриптинг ховається в URL. На сервері нічого не розміщують: одне спеціально створене посилання виконує скрипт зловмисника на вашому власному сайті, в активній сесії жертви. Ви замінете пошуковий вираз магазину пейлоадом img onerror і побачите, як заголовок результатів його виконує. Потім відкриєте обробник пошуку, знайдете місце, де запит дописують у HTML-відповідь, екрануєте його на межі рендерингу й повторите той самий пейлоад, який тепер відображається як неактивний текст. Список заборонених, що шукає теги script , цього ніколи не помітить.

Що ви дізнаєтесь у Відбитий XSS

Відбитий XSS — Кроки навчання

  1. Знайдіть пошук у магазині

    Сьогодні Боб націлився на Vellora — онлайн-маркетплейс із великою базою клієнтів, які ввійшли в обліковий запис. Він відкриває публічний пошук магазину, щоб побачити, як він працює. Поле пошуку, яке виводить ваш запит назад на сторінку, — це перше, що перевіряє зловмисник.

  2. Виконайте звичайний пошук

    Спершу подивіться, як ця функція працює для справжнього покупця. Виконайте звичайний пошук товару. Магазин повертає відповідні товари, а пошуковий вираз, який ввів Боб, повторюється в заголовку результатів.

  3. Запит відбивається на сторінці

    Той самий вираз, який шукав Боб, одразу повертається в заголовку результатів, а в адресному рядку він тепер міститься як параметр q . Таке відбиття небезпечне, лише якщо сторінка не екранує значення, перш ніж вивести його. Дізнатися це можна тільки одним способом: підсунути їй символ, який браузер сприймає як розмітку.

  4. Перевірте, чи є екранування

    Боб перевіряє відбиття класичним тестом: тегом зображення з хибною адресою src і обробником onerror , який викликає нешкідливий alert(1) . Якщо сторінка екранує запит, він з'явиться в заголовку як звичайний текст. Якщо ні, браузер створить справжній тег і з'явиться спливне вікно alert.

  5. Вразливість можна використати

    Спливне вікно alert з'явилося. Сторінка не екранує запит, тож виконує будь-яку розмітку, яку несе URL. Той нешкідливий alert(1) був лише підтвердженням. Справжній пейлоад не показує діалогового вікна, а виконується непомітно: якщо скрипт може прочитати сесійний cookie, пейлоад його краде.

  6. Зробіть пейлоад бойовим і надішліть фішинговий лист

    Боб замінює alert на скрипт, який краде cookie й надсилає сесію на сервер Боба. Він вбудовує цей скрипт у посилання пошуку Vellora , щоб скрипт виконувався на довіреному домені магазину, і маскує посилання під приємну винагороду. Потім Боб надсилає це посилання справжній працівниці, чию сесію варто викрасти, — Алісі. Люди довіряють посиланням на магазин власної компанії.

  7. Несподівана винагорода

    У вашу поштову скриньку надходить лист про винагороду. Він схожий на лист від Vellora, а посилання веде в магазин, яким ви користуєтеся щодня. Нічого явно підозрілого немає.

  8. Отримайте винагороду

    Посилання відкриває власний магазин Vellora, тож здається безпечним. Перейдіть за посиланням, щоб отримати винагороду.

  9. Що насправді виконало посилання

    Це звичайна сторінка пошуку Vellora, але замість заголовка результатів видно зображення, що не завантажилося. Проте параметр q у посиланні містив скрипт. Він виконався, щойно сторінка відобразилася, прочитав ваш сесійний cookie й непомітно надіслав його зловмиснику. Спливного вікна не було. Єдиний слід — зображення, що не завантажилося. Усе вдалося тільки тому, що в сесійного cookie Vellora немає атрибута HttpOnly ; якби він був, скрипт усе одно міг би діяти від вашого імені на сторінці, але не міг би прочитати cookie.

  10. Вашу сесію перехоплено

    Через кілька хвилин центр моніторингу безпеки (SOC) піднімає тривогу. Посилання, яке ви відкрили, обернуло вашу ж вітрину проти вас, і тепер вашу сесію використовує хтось інший. Сторінка, на якій перехопили сесію, досі відкрита поруч зі сповіщенням. Ви відповідаєте за цей код. Прочитайте сповіщення, а потім виправте першопричину.

Охоплення стандартів безпеки

OWASP Top 10

  • A05:2025 Injection
  • A03:2021 Injection

CWE

  • CWE-79 Improper Neutralization of Input During Web Page Generation

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security