Використання XSS вразливостей максимум. XSS атаки: якими вони бувають і чим небезпечні Типу xss

Орі Сігал (Ory Segal)

Дізнайтеся, як хакери використовують атаку типу "міжсайтовий скриптинг", що вона ушкоджує (а що - ні), як їх визначати, а також як захистити свій Web-сайт та його відвідувачів від подібних зловмисних порушень конфіденційності та безпеки.

Міжсайтовий скриптинг (cross-site scripting або скорочено XSS) - це одна з найчастіших атак рівня програми, яку хакери використовують для злому Web-додатків. XSS – це атака на конфіденційність інформації клієнтів певного Web-сайту. Вона може призвести до повного руйнування системи безпеки, коли дані клієнта крадуться і використовуються надалі для будь-яких цілей. Більшість атак має на увазі участь двох сторін: або зловмисника та Web-сайт, або зловмисника та жертву-клієнта. Проте в атаці XSS беруть участь три сторони: зловмисник, клієнт та веб-сайт.

Метою атаки XSS є крадіжка з комп'ютера клієнта файлів cookie або іншої конфіденційної інформації, яка може ідентифікувати клієнта на веб-сайті. Маючи в своєму розпорядженні інформацію для ідентифікації як легального користувача, зловмисник може діяти на сайті як такий користувач, тобто. вдавати їм. Наприклад, при одному аудиті, який проводиться у великій компанії, можна було за допомогою атаки XSS отримати приватну інформацію користувача та номер його кредитної картки. Це було досягнуто шляхом запуску спеціального коду JavaScript. Цей код був запущений у браузері жертви (клієнта), яка мала привілеї доступу на Web-сайт. Є дуже обмежена кількість привілеїв JavaScript, які не дають доступу скрипту ні до чого, крім інформації, що відноситься до сайту. Важливо підкреслити, що, хоча вразливість і існує на Web-сайті, сам він безпосередньо не ушкоджується. Але цього достатньо, щоб скрипт зібрав файли cookieі відправив їх зловмиснику. У результаті зловмисник отримує потрібні дані та може імітувати жертву.

Давайте назвемо атакований сайт так: www.vulnerable.site. В основі традиційної атаки XSS лежить вразливий скрипт, що знаходиться на вразливому сайті. Цей скрипт зчитує частину HTTP-запиту (зазвичай параметри, але іноді також HTTP-заголовки або шлях) і повторює його для сторінки у відповідь, повністю або тільки частина. При цьому не проводиться очищення запиту (тобто не перевіряється, що запит не містить код JavaScript або HTML-теги). Припустимо, що цей скрипт називається welcome.cgi і його параметром є ім'я. Його можна використовувати так:

Як цим можна зловживати? Зловмисник повинен залучити клієнта (жертву), щоб він клацнув мишею посилання, яке зловмисник йому надає. Це ретельно та зловмисно підготовлене посилання, яке змушує Web-браузер жертви звернутися до сайту (www.vulnerable.site) та виконати вразливий скрипт. Дані для цього скрипта містять код JavaScript, який отримує доступ до файлів cookie, збережених браузером клієнта для сайту www.vulnerable.site. Це допускається, оскільки браузер клієнта "думає", що код JavaScript виходить від сайту www.vulnerable.site. А модель безпеки JavaScript дозволяє скриптам, що походять від певного сайту, отримувати доступ до файлів cookie, які належать цьому сайту.

Відповідь вразливого сайту буде такою:

Welcome! Hi

Welcome to our system ...

Браузер клієнта-жертви інтерпретує цей запит як HTML-сторінку, що містить частину коду JavaScript. Цей код отримає доступ до всіх файлів cookie, що належать сайту www.vulnerable.site. Отже, він викличе спливаюче вікно в браузері, що показує всі файли cookie клієнта, які відносяться до www.vulnerable.site.

Звичайно, реальна атака мала б на увазі відправлення цих файлів атакуючому. Для цього атакуючий може створити Web-сайт (www.attacker.site) та використати скрипт для отримання файлів cookie. Замість виклику спливаючого вікна зловмисник написав би код, який звертається за URL-адресою до сайту www.attacker.site. У зв'язку з цим виконується скрипт для отримання файлів cookie. Параметром для цього скрипта є вкрадені файли cookie. Таким чином, зловмисник може отримати файли cookie із сервера www.attacker.site.

Негайно після завантаження цієї сторінки браузер виконає вставлений туди код JavaScript і перешле запит скрипту collect.cgi на сайті www.attacker.site разом із значенням файлів cookie із сайту www.vulnerable.site, які вже є у браузері. Це підриває безпеку файлів cookie сайту www.vulnerable.site, які є у клієнта. Це дозволяє зловмиснику прикинутися жертвою. Конфіденційність клієнта повністю порушена.

Примітка.
Зазвичай виклику спливаючого вікна за допомогою JavaScript достатньо, щоб продемонструвати вразливість сайту до атаки XSS. Якщо з JavaScript можна викликати функцію Alert, то зазвичай немає причин, через які виклик може не вийти. Ось чому більшість прикладів атак XSS використовує функцію Alert, яка дуже легко дає змогу визначити успіх атаки.

Атака може статися тільки в браузері жертви, тому самому, який використовувався для доступу до сайту (www.vulnerable.site). Атакуючий повинен змусити клієнта отримати доступ до шкідливого посилання. Цього можна досягти декількома способами.

  • Зловмисник посилає електронною поштою повідомлення, що містить HTML-сторінку, яка змушує браузер відкрити посилання. Для цього потрібно, щоб жертва використовувала клієнт електронної пошти, здатний працювати з HTML. А засобом перегляду HTML у клієнті має бути той самий браузер, який використовується для доступу до сайту www.vulnerable.site.
  • Клієнт відвідує сайт, можливо створений зловмисником, на якому посилання на зображення або інший активний елемент HTML змушує браузер відкрити посилання. Знову ж таки в цьому випадку обов'язково, щоб для доступу і до цього сайту, і до сайту www.vulnerable.site використовувався той самий браузер.

Шкідливий код на JavaScript може отримати доступ до будь-якої нижче інформації:

  • постійні файли cookie (сайту www.vulnerable.site), які зберігає браузер;
  • файли cookie в оперативній пам'яті (сайту www.vulnerable.site), які підтримуються екземпляром браузера лише під час перегляду сайту www.vulnerable.site;
  • імена інших вікон, що відкриті для сайту www.vulnerable.site.
  • будь-яка інформація, яка доступна через поточну модель DOM (із значень, код HTML і т.д.).

Дані для ідентифікації, авторизації та автентифікації зазвичай зберігаються як файли cookie. Якщо ці файли cookie є постійними, то жертва вразлива для атаки навіть тоді, коли вона не використовує браузер у момент доступу до сайту www.vulnerable.site. Однак, якщо файли cookie - тимчасові (наприклад, вони зберігаються в оперативній пам'яті), то на стороні клієнта повинен існувати сеанс зв'язку з сайтом www.vulnerable.site.

Ще одна можлива реалізація ідентифікаційної мітки – це параметр URL. У подібних випадках можна отримати доступ до інших вікон, використовуючи JavaScript наступним чином (припустимо, що ім'я сторінки з потрібними параметрами URL - foobar):

Щоб запустити скрипт на JavaScript, можна використовувати безліч HTML-тегів, крімхакери можуть використовувати конструкцію . Це підходить для сайтів, що фільтрують HTML-тегможна використовувати конструкцію">

Досі ми бачили, що атака XSS може відбуватися у параметрі запиту GET, який відповідає скрипт. Але виконати атаку можна і за допомогою запиту POST, або за допомогою компонента шляху запиту HTTP, і навіть за допомогою деяких заголовків HTTP (наприклад, Referer).

Зокрема компонент шляху (path) корисний, коли сторінка помилки повертає помилковий шлях. У цьому випадку включення шкідливого скрипта в дорогу часто призводить до виконання. Багато Web-серверів уразливі для цієї атаки.

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

Слабким місцем у програмі є скрипт, який повертає свій параметр незалежно від його значення. Хороший скрипт повинен переконатися, що параметр має правильний формат, що він містить прийнятні символи і т.д. Зазвичай немає причин, щоб правильний параметр містив теги HTML або JavaScript. Вони повинні бути видалені з параметра до того, як він буде впроваджений у відповідь або використаний у програмі. Це дозволить забезпечити безпеку.

Убезпечити сайт від атак XSS можна трьома способами.

  1. За допомогою виконання власної фільтрації вхідних даних (яку іноді називають вхідним санітарним контролем або input sanitation). Для кожного введення користувача (будь це параметр або заголовок HTML), у кожному написаному самостійно скрипті слід застосовувати розширені засоби фільтрації проти тегів HTML, включаючи код JavaScript. Наприклад, скрипт welcome.cgi із попереднього прикладу має фільтрувати тег

    кожному параметру кожного скрипта (через браузер із можливостями роботи з JavaScript, щоб виявити найпростіший видвразливості до XSS) браузер викличе вікно JavaScript Alert, якщо текст інтерпретований як JavaScript. Звісно, ​​є кілька варіантів. Тому тестувати лише цей варіант недостатньо. І, як ви вже дізналися, можна вставляти JavaScript в різні поля запиту: параметри, заголовки HTTP і шлях. Однак у деяких випадках (особливо із заголовком HTTP Referer) виконувати атаку за допомогою браузера незручно.

    Міжсайтовий скриптинг - це одна з найчастіших атак рівня програми, яку хакери використовують для зламування Web-додатків. Також вона є найнебезпечнішою. Це атака на конфіденційність інформації клієнтів певного веб-сайту. Вона може призвести до повного руйнування системи безпеки, коли дані клієнта крадуться і використовуються надалі для якихось цілей. На жаль, як пояснює ця стаття, це часто робиться без знань про клієнта або організації, що атакується.

    Щоб запобігти вразливості Web-сайтів до цих шкідливих дій, важливо, щоб організація реалізувала стратегію і онлайн-і оффлайн-захисту. Це включає засіб автоматизованої перевірки вразливості, який може протестувати на наявність всіх відомих вразливостей Web-сайтів та певних додатків (наприклад, міжсайтовий скриптинг) на сайті. Для повного онлайн-захисту також життєво важливо встановити міжмережевий екран, який може виявляти та блокувати будь-який тип маніпуляцій з кодом та даними, що розміщуються на Web-серверах або за ними.

    Всі ми знаємо, що таке міжсайтовий скриптинг, правда? Це вразливість, коли атакуючий посилає зловмисні дані (зазвичай це HTML, що містить код Javascript), які пізніше повертаються додатком, що викликає виконання Javascript коду. Отже, це не так! Існує тип XSS атак, що не відповідає цьому визначенню, принаймні в основних фундаментальних принципах. XSS атаки, визначення яких наведено вище, поділяються на моментальні (зловмисні дані вбудовуються в сторінку, яка повертається браузеру відразу після запиту) і відкладені (зловмисні дані повертаються через деякий час). Але є ще третій тип XSS атак, основу якого лежить відправка зловмисних даних на сервер. Незважаючи на те, що це здається таким, що суперечить здоровому глузду, є два добре описані приклади такої атаки. Ця стаття визначає третій тип XSS атак - XSS через DOM (DOM Based XSS). Тут не буде написано нічого принципово нового про атаку, швидше за нововведення цього матеріалу у виділенні відмінних рис атаки, які є дуже важливими та цікавими.

    Розробники та користувачі прикладних додатків повинні розуміти принципи атаки XSS через DOM, оскільки вона становить загрозу для веб-додатків і відрізняється від звичайного XSS. У мережі інтернет є багато web додатків вразливих до XSS через DOM і при цьому перевірених на XSS і визнаних "невразливими" до цього типу атак. Розробники та адміністратори сайтів повинні ознайомитися з методами виявлення та захисту від XSS через DOM, оскільки ці методики відрізняються від прийомів, що використовуються під час роботи зі стандартними XSS вразливістю.

    Вступ

    Читач повинен бути знайомий з основними принципами XSS атак (, , , , ). Під XSS зазвичай мається на увазі моментальний () і відкладений міжсайтовий скриптинг. При миттєвому XSS зловмисний код (Javascript) повертається атакованим сервером негайно як відповідь на запит HTTP. Відкладений XSS означає, що зловмисний код зберігається на системі, що атакується, і пізніше може бути впроваджений в HTML сторінку вразливої ​​системи. Як було згадано вище, така класифікація передбачає, що фундаментальна властивість XSS полягає в тому, що зловмисний код надсилається з браузера на сервер і повертається в той же браузер (моментальний XSS) або будь-який браузер (відкладений XSS). У цій статті порушується питання, що це неправильна класифікація. Можливість здійснення XSS атаки, що не ґрунтується на впровадженні коду в сторінку, що повертається сервером, мала б серйозний вплив на методи захисту та виявлення. Принципи таких атак обговорюються у цій статті.

    Приклад та коментарі

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

    Ознакою вразливого сайту може бути наявність HTML сторінки, що використовує дані з document.location, document.URL або document.referrer (або будь-яких інших об'єктів на які може впливати атакуючий) небезпечним способом.

    Примітка для читачів незнайомих із цими об'єктами Javascript: коли код Javascript виконується у браузері, він отримує доступ до кількох об'єктів, представлених у рамках DOM (Document Object Model – Об'єктна Модель Документу). Об'єкт document є головним серед цих об'єктів та надає доступ до більшості властивостей сторінки. Цей об'єкт містить багато вкладених об'єктів, таких як location, URL та referrer. Вони керуються браузером відповідно до точки зору браузера (як буде видно нижче, це дуже суттєво). Отже, document.URL і document.location містять URL сторінки, а точніше те, що браузер має на увазі під URL. Зверніть увагу, ці об'єкти не беруться з HTML-сторінки. Об'єкт document містить об'єкт body, який містить оброблений (parsed) HTML код сторінки.

    Не складно знайти HTML сторінку, що містить Javascript код, який аналізує рядок URL (отримавши доступ до неї через document.URL або document.location) і відповідно до її значення виконує деякі дії на стороні клієнта. Нижче наведено приклад такого коду.

    За аналогією з прикладом розглянемо наступну HTML сторінку (припустимо, що це зміст http://www.vulnerable.site/welcome.html):

    Welcome! Hi
    Welcome to our system …

    Проте запит на кшталт цього –

    http://www.vulnerable.site/welcome.html?name=

    викликав би XSS. Розглянемо чому: браузер жертви, який отримав це посилання, відправляє HTTP запит на www.vulnerable.site і отримує вищезгадану (статичну!) HTML сторінку. Браузер жертви починає аналізувати цей HTML-код. DOM містить об'єкт document, що має поле URL, і це поле заповнюється значенням URL поточної сторінки в процесі створення DOM. Коли синтаксичний аналізатор доходить до Javascript коду, він виконує його, що викликає модифікацію HTML коду сторінки, що відображається. У даному випадку код посилається на document.URL і так як частина цього рядка під час синтаксичного розбору вбудовується в HTML, який відразу ж аналізується, виявлений код (alert(…)) виконується в контексті тієї ж самої сторінки.

    Зауваження:

    1. Зловмисний код не вбудовується в HTML-сторінку (на відміну від інших різновидів XSS).
    2. Цей експлойт буде працювати, якщо браузер не модифікує символи URL-адреси. Mozilla автоматично кодує символи<’ и ‘>' (%3C і %3E відповідно) у вкладених об'єктах document. Якщо URL було надруковано безпосередньо в рядку адреси, цей браузер невразливий для атаки, описаної в цьому прикладі. Однак, якщо для атаки не потрібні символи<’ и ‘>' (у вихідному незакодованому вигляді) атаку можна здійснити. Microsoft Internet Explorer 6.0 не кодує ‘<’ и ‘>' і тому вразливий до описаної атаки без будь-яких обмежень. Однак існує багато різних сценаріїв атаки, що не потребують<’ и ‘>’, і тому навіть Mozilla не має імунітету до цієї атаки.

    Методи виявлення та запобігання вразливості цього типу

    У прикладі вище зловмисний код все ще передається на сервер (як частина HTTP запиту), тому атака може бути виявлена, як і будь-яка інша XSS атака. Але це вирішувана проблема.

    Розглянемо наступний приклад:

    http://www.vulnerable.site/welcome.html#name=

    Суворіша політика безпеки вимагала б обов'язкового відсилання параметра name. У цьому випадку ви можете зробити наступний запит:

    http://www.vulnerable.site/welcome.html?notname=

    Навіть якщо корисне навантаження аналізується сервером, захист може гарантуватися лише в тому випадку, якщо запит буде відхилено або відповідь замінено на деякий текст помилки. Звернемося знову і: якщо заголовок Authorization буде просто видалений проміжною системою захисту, це не принесе жодного ефекту, якщо буде повернена оригінальна сторінка. Аналогічно будь-яка спроба обробки даних на сервері шляхом видалення або кодування заборонених символів буде неефективна проти цієї атаки.

    У випадку з document.referrer, корисне навантаження надсилається на сервер через заголовок Referer. Однак якщо браузер користувача або проміжний захист видалити цей заголовок - не залишиться жодних слідів атаки, які можна пройти повністю непоміченою.

    Підсумовуючи, робимо висновок, що традиційні методи, а саме

    1. Кодування даних HTML на стороні сервера
    2. Видалення/кодування заборонених вхідних даних на стороні сервера не працює проти DOM XSS.

    Автоматичний пошук вразливості шляхом "бомбардування" зловмисними даними (іноді званий fuzzing) не буде працювати, так як програми, що використовують цю методику, зазвичай роблять висновки на основі того, присутні впроваджені дані у поверненій сторінці чи ні (замість виконання коду в контексті браузера на стороні клієнта та спостереження за результатами). Однак, якщо програма може статично аналізувати код Javascript, виявлений на сторінці, вона може вказати на підозрілі ознаки (див. нижче). І звичайно, якщо засоби захисту можуть виконувати код Javascript (і коректно ініціалізувати об'єкти DOM) або емулювати таке виконання, вони зможуть виявити цю атаку.

    Ручний пошук вразливості за допомогою браузера також буде працювати, тому що браузер може виконувати клієнтський код Javascript. Засоби пошуку вразливостей можуть використовувати цей метод і виконувати код на стороні клієнта для стеження за результатами його виконання.
    Ефективний захист

    Уникати перезапису документа на стороні клієнта, переадресації або інших подібних дій, що використовують дані на стороні клієнта. Більшість цих дій може бути виконано за допомогою динамічних сторінок (на стороні сервера).
    2.

    Аналіз та підвищення захищеності коду (Javascript) на стороні клієнта. Посилання на об'єкти DOM, на які може впливати користувач (атока), повинні бути ретельно перевірені. Особливу увагу слід приділяти наступним об'єктам (але не обмежуватися ними):
    * document.URL
    * document.URLUnencoded
    * document.location (і його властивості)
    * document.referrer
    * window.location (і його властивості)

    Зверніть увагу: на властивості об'єктів document і window можна послатися декількома способами: явно (приклад window.location), неявно (приклад location) або через отримання дескриптора та використання його (приклад handle_to_some_window.location).

    Особливу увагу потрібно приділити коду, де модифікується DOM, явно чи є потенційна можливість, а також через прямий доступ до HTML або через доступ безпосередньо до DOM. Приклади (це ні в якому разі не вичерпний список):
    * Запис у HTML код сторінки:
    o document.write(…)
    o document.writeln(…)
    o document.body.innerHtml=…
    * Зміна DOM безпосередньо (включаючи події DHTML):
    o document.forms.action=… (та інші варіації)
    o document.attachEvent(…)
    o document.create…(…)
    o document.execCommand(…)
    o document.body. … (доступ до DOM через об'єкт body)
    o window.attachEvent(…)
    * Зміна URL документа:
    o document.location=… (а також присвоєння значень href, host і hostname об'єкта location)
    o document.location.hostname=…
    o document.location.replace(…)
    o document.location.assign(…)
    o document.URL=…
    o window.navigate(…)
    * Відкриття/модифікація об'єкта window:
    o document.open(…)
    o window.open(…)
    o window.location.href=… (а також присвоєння значення host і hostname об'єкта location)
    * Виконання скрипта безпосередньо:
    o eval(…)
    o window.execScript(…)
    o window.setInterval(…)
    o window.setTimeout(…)

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

    Міжсайтовий скриптинг (XSS) - це вразливість, яка полягає у впровадженні коду, який виконується на стороні клієнта (JavaScript) у веб-сторінку, яку переглядають інші користувачі.

    Вразливість виникає через недостатню фільтрацію даних, які користувач надсилає для вставки на веб-сторінку. Набагато простіше зрозуміти на конкретному приклад. Згадайте будь-яку гостьову книгу – це програми, які призначені для прийняття даних від користувача та подальшого їх відображення. Уявімо, що гостьова книга ніяк не перевіряє і не фільтрує дані, що вводяться, а просто їх відображає.

    Можна накидати свій найпростіший скрипт (немає нічого простіше, ніж писати погані скрипти на PHP - цим дуже багато хто займається). Але вже достатньо готових варіантів. Наприклад, я пропоную почати знайомство з Dojo та OWASP Mutillidae II. Там є схожий приклад. В автономному середовищі Dojo перейдіть у браузері за посиланням: http://localhost/mutillidae/index.php?page=add-to-your-blog.php

    Якщо хтось із користувачів ввів:

    То веб-сторінка відобразить:

    Вітання! Подобається твій веб-сайт.

    Якщо користувач введе так:

    Вітання! Подобається твій веб-сайт.

    То це відобразиться так:

    Браузери зберігають безліч кукіз великої кількості сайтів. Кожен сайт може отримати кукіз тільки збережені ним самим. Наприклад, сайт example.com зберіг у вашому браузері деякі кукізи. Ви заши на сайт another.com, цей сайт (клієнтські та серверні скрипти) не можуть отримати доступ до кукізів, які зберіг сайт example.com.

    Якщо сайт example.com вразливий до XSS, це означає, що ми можемо тим чи іншим способом впровадити код JavaScript, і цей код буде виконуватися від імені сайту example.com! Тобто. цей код отримає, наприклад, доступ до кукіз сайту example.com.

    Думаю, всі пам'ятають, що виконується JavaScript у браузерах користувачів, тобто. за наявності XSS, впроваджений шкідливий код отримує доступ до даних користувача, який відкрив сторінку веб-сайту.

    Впроваджений код вміє все те, що вміє JavaScript, а саме:

    • отримує доступ до кукіз сайту, що переглядається
    • може вносити будь-які зміни в зовнішній виглядсторінки
    • отримує доступ до буфера обміну
    • може впроваджувати програми на JavaScript, наприклад, кі-логери (перехоплювачі натиснутих клавіш)
    • підчіпляти на BeEF
    • та ін.

    Найпростіший приклад з кукіз:

    Насправді, alertвикористовується лише для виявлення XSS. Реальне шкідливе корисне навантаження здійснює приховані дії. Вона приховано зв'язується з віддаленим сервером зловмисника та передає на нього вкрадені дані.

    Види XSS

    Найголовніше, що потрібно розуміти про види XSS те, що вони бувають:

    • Зберігані (постійні)
    • Відображені (Непостійні)

    Приклад постійних:

    • Введене зловмисником спеціально сформоване повідомлення у гостьову книгу (коментар, повідомлення форуму, профіль), яке зберігається на сервері, завантажується з сервера щоразу, коли користувачі запитують відображення цієї сторінки.
    • Зловмисник отримав доступ до даних сервера, наприклад, через SQL ін'єкцію, і впровадив у дані, що видаються користувачеві, дані зловмисний JavaScript код (з кілогерами або з BeEF).

    Приклад непостійних:

    • На сайті є пошук, який разом з результатами пошуку показує щось на кшталт «Ви шукали: [рядок пошуку]», при цьому дані не фільтруються належним чином. Оскільки така сторінка відображається тільки для того, хто має посилання на неї, то поки зловмисник не надішле посилання іншим користувачам сайту, атака не спрацює. Замість надсилання посилання на жертву, можна використовувати розміщення зловмисного скрипту на нейтральному сайті, який відвідує жертва.

    Ще виділяють (деякі як різновиду непостійних XSS вразливостей, деякі кажуть, що цей вид може бути різновидом постійної XSS):

    • DOM-моделі

    Особливості XSS заснованих на DOM

    Якщо сказати дуже просто, то зловмисний код «звичайних» непостійних XSS ми можемо побачити, якщо відкриємо HTML-код. Наприклад, посилання сформоване таким чином:

    Http://example.com/search.php?q="/>

    А при відкритті вихідного HTML коду ми бачимо щось на зразок такого: