DOM XSS

DOM XSS

Корисне навантаження ніколи не досягає сервера. Він все ще працює.

Що таке DOM XSS?

XSS на основі DOM — це міжсайтовий сценарій, який ваш сервер ніколи не бачить. Корисне навантаження міститься у фрагменті URL-адреси, document.referrer або postMessage , а JavaScript на стороні клієнта записує його в innerHTML . Серверні фільтри та брандмауери веб-додатків сліпі до всього цього. Ви запакуєте корисне навантаження img onerror у посилання спільного використання для засобу перегляду нотаток, відкриєте його самостійно, простежите потік від джерела до приймача та виправите це за допомогою textContent , щоб браузер створював текстовий вузол замість аналізу розмітки.

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

DOM XSS — Кроки навчання

  1. Відкрийте інструмент обміну нотатками

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

  2. Поділіться звичайною заміткою

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

  3. Замітка їде за посиланням

    Ось посилання для спільного доступу. Вся нота знаходиться в ній, у частині після # . Коли хтось відкриває посилання, глядач читає цей фрагмент і відображає його. Нічого про замітку ніколи не досягає сервера Tideline.

  4. Створіть тестове корисне навантаження

    Переглядач переносить все, що містить нотатка, на сторінку як HTML. Отже, Боб пише примітку, яка насправді не є приміткою: тег зображення, джерело якого не може завантажити, має обробник onerror . Коли зображення не вдається, запускається обробник, і будь-який код, який він містить, виконується в браузері того, хто відкриває посилання. Він починає з найпростішого доказу, звичайного alert(1) , щоб підтвердити, що його код взагалі працює.

  5. Перевірте корисне навантаження

    Перш ніж використовувати будь-яку зброю, Боб переглядає власне посилання, щоб перевірити, чи спрацьовує корисне навантаження. Попередній перегляд відкриває нотатку саме так, як її побачить одержувач. У той момент, коли програма перегляду завантажує його, з’являється сповіщення. Його код виконується в браузері точно так, як було заплановано.

  6. Озброїти це

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

  7. Надішліть посилання жертві

    Боб надсилає посилання на зброю Алісі, інженеру Tideline, яка цілий день відкриває спільні нотатки. Це оформлено як записка, яку вона поділила перед ранковим оглядом, тож у неї немає причин вагатися.

  8. Надходить спільна нотатка

    Електронна пошта Боба вже в дорозі. Ви володієте кодом переглядача інструмента обміну нотатками, і спільна нотатка потрапляє у вашу папку 'Вхідні' безпосередньо перед переглядом о 10:00. Відкрийте його, а потім відкрийте нотатку.

  9. Відкрийте спільну нотатку

    Нічого не виглядає непомітно, тому ви відкриваєте нотатку так само, як відкриваєте десятки інших.

  10. Записка краде ваш сеанс

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

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

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