html injection tutorial
найкраще оновлення драйверів для Windows 7
Поглиблений огляд введення HTML:
Для кращого сприйняття HTML-ін'єкції спочатку ми повинні знати, що таке HTML.
HTML - це мова розмітки, де всі елементи веб-сайту записані в теги. Він в основному використовується для створення веб-сайтів. Веб-сторінки надсилаються браузеру у вигляді документів HTML. Потім ці документи HTML перетворюються на звичайні веб-сайти та відображаються для кінцевих користувачів.
Цей підручник дасть вам повний огляд введення HTML, його типів та запобіжних заходів, а також практичні приклади простими словами для легшого розуміння концепції.
Що ви дізнаєтесь:
- Що таке ін'єкція HTML?
- Типи введення HTML
- Як виконується ін’єкція HTML?
- Як протестувати проти ін’єкції HTML?
- Як запобігти введенню HTML?
- Порівняння з іншими атаками
- Висновок
- Рекомендована література
Що таке ін'єкція HTML?
Суть цього типу ін’єкційних атак полягає у введенні HTML-коду через вразливі частини веб-сайту. Зловмисний користувач надсилає HTML-код через будь-яке вразливе поле з метою змінити дизайн веб-сайту або будь-яку інформацію, що відображається користувачеві.
В результаті користувач може побачити дані, надіслані зловмисним користувачем. Тому, загалом, HTML Injection - це просто введення коду мови розмітки в документ сторінки.
Дані, які надсилаються під час цього типу ін’єкційної атаки, можуть сильно відрізнятися. Це може бути кілька HTML-тегів, які просто відображатимуть надіслану інформацію. Крім того, це може бути ціла підроблена форма або сторінка. Коли відбувається ця атака, браузер зазвичай інтерпретує зловмисні дані користувача як законні та відображає їх.
Зміна зовнішнього вигляду веб-сайту - не єдиний ризик, який спричиняє такий тип атаки. Це дуже схоже на атаку XSS, коли зловмисний користувач краде особисті дані іншої людини. Тому під час цього ін’єкційного нападу також може трапитися викрадення особистості іншої людини.
Типи введення HTML
Здається, ця атака не дуже важка для розуміння або виконання, оскільки HTML розглядається як досить проста мова. Однак існують різні способи здійснення цього типу атаки. Ми також можемо розрізнити різні типи цієї ін’єкції.
По-перше, різні типи можна сортувати за ризиками, які вони несуть.
Як вже згадувалося, цю ін'єкційну атаку можна виконати з двома різними цілями:
- Щоб змінити вигляд відображеного веб-сайту.
- Викрасти особу іншої людини.
Крім того, цю ін'єкційну атаку можна здійснити через різні частини веб-сайту, тобто поля введення даних та посилання на веб-сайт.
Однак основними видами є:
- Зберігається ін’єкція HTML
- Відображена ін’єкція HTML
# 1) Зберігається введення HTML:
Основна різниця між цими двома типами ін’єкцій полягає в тому, що збережена атака ін’єкції відбувається, коли шкідливий HTML-код зберігається на веб-сервері і виконується кожного разу, коли користувач викликає відповідну функціональність.
Однак у випадку відбитої атаки ін'єкції зловмисний HTML-код не зберігається назавжди на веб-сервері. Відображена ін’єкція відбувається, коли веб-сайт негайно реагує на зловмисні дані.
# 2) Відображена ін’єкція HTML:
Це можна знову поділити на більше типів:
- Відображено GET
- Відображений POST
- Відображена URL-адреса
Відображена ін'єкційна атака може виконуватися по-різному відповідно до методів HTTP, тобто GET та POST. Я нагадую, що з методом POST надсилаються дані, а з методом GET запитуються дані.
Щоб знати, який метод використовується для відповідних елементів веб-сайту, ми можемо перевірити джерело сторінки.
Наприклад , тестер може перевірити вихідний код форми входу та знайти, який метод для нього використовується. Тоді відповідний метод введення HTML можна вибрати відповідним чином.
Відображена ін’єкція GET відбувається, коли наші дані відображаються (відображаються) на веб-сайті. Припустимо, у нас є проста сторінка з формою пошуку, яка вразлива для цієї атаки. Тоді, якщо ми введемо будь-який HTML-код, він з’явиться на нашому веб-сайті, і одночасно він буде введений в HTML-документ.
Наприклад, ми вводимо простий текст із тегами HTML:
Відображена інжекція POST HTML трохи складніше. Це відбувається, коли зловмисний HTML-код надсилається замість правильних параметрів методу POST.
Наприклад , ми маємо форму для входу, яка вразлива до атак HTML. Дані, набрані у формі для входу, надсилаються методом POST. Тоді, якщо ми введемо будь-який HTML-код замість правильних параметрів, тоді він буде надісланий методом POST і відображений на веб-сайті.
Для здійснення атаки Reflected POST HTML рекомендується використовувати спеціальний плагін веб-переглядача, який підробляє надіслані дані. Одним з них є плагін Mozilla Firefox “Tamper Data”. Плагін бере на себе надіслані дані і дозволяє користувачеві змінити їх. Потім змінені дані надсилаються та відображаються на веб-сайті.
Наприклад, якщо ми використовуємо такий плагін, то ми надішлемо той самий HTML-код або шукайте код форми, якщо ви хочете протестувати щось більш складне Введіть текст для пошуку
Якщо відображається HTML-код, який десь зберігається, тестер може бути впевнений, що ця ін’єкційна атака можлива. Тоді можна спробувати більш складний код - для Приклад , щоб відобразити підроблену форму входу.
Іншим рішенням є сканер HTML Injection. Автоматичне сканування проти цієї атаки може значно заощадити ваш час. Я хотів би повідомити, що інструментів для тестування HTML Injection у порівнянні з іншими атаками не так багато.
Однак одним із можливих рішень є застосування WAS. WAS можна назвати досить сильним сканером вразливостей, оскільки він тестується з різними входами, а не просто зупиняється з першим невдалим.
Це корисно для тестування, можливо, як згадувалося у вищевказаному плагіні браузера “Tamper Data”, він отримує надіслані дані, дозволяє тестувальнику змінити їх і надсилає у браузер.
Ми також можемо знайти деякі інструменти онлайн-сканування, де вам потрібно лише надати посилання на веб-сайт, і сканування проти HTML-атаки буде виконано. Після завершення тестування буде відображено резюме.
Я хотів би зауважити, що, вибираючи інструмент сканування, ми повинні звертати увагу на те, як він аналізує результати та чи достатньо точний він чи ні.
великі дані як сервісні компанії
Однак слід пам’ятати, що про тестування вручну не слід забувати. Таким чином ми можемо бути впевнені, які саме вхідні дані пробуються і які саме результати ми отримуємо. Також таким чином легше аналізувати результати.
Зі свого досвіду в кар’єрі тестування програмного забезпечення, я хотів би зауважити, що для обох способів тестування ми повинні добре знати цей тип ін’єкцій. В іншому випадку було б важко вибрати відповідний інструмент автоматизації та проаналізувати його результати. Крім того, завжди рекомендується не забувати тестувати вручну, оскільки це лише робить нас більш впевненими в якості.
Як запобігти введенню HTML?
Немає сумнівів, що основною причиною цієї атаки є неуважність розробника та відсутність знань. Цей тип ін'єкційної атаки відбувається, коли вхідні та вихідні дані не перевірені належним чином. Тому головним правилом запобігання атакам HTML є відповідна перевірка даних.
Кожен ввід слід перевірити, чи містить він будь-який код сценарію чи будь-який HTML-код. Зазвичай це перевіряється, якщо код містить якийсь спеціальний скрипт або дужки HTML -,.
Існує багато функцій для перевірки, чи містить код якісь спеціальні дужки. Вибір функції перевірки залежить від мови програмування, яку ви використовуєте.
Слід пам'ятати, що добре тестування безпеки також є частиною профілактики. Я хотів би звернути увагу, що оскільки атака HTML Injection дуже рідкісна, менше літератури можна дізнатись про неї та менше сканера для автоматичного тестування. Однак цю частину тестування безпеки насправді не можна пропускати, оскільки ніколи не знаєш, коли це може статися.
Крім того, і розробник, і тестувальник повинні добре знати, як виконується ця атака. Хороше розуміння цього процесу атаки може допомогти запобігти його.
Порівняння з іншими атаками
У порівнянні з іншими можливими атаками, ця атака точно не буде вважатися такою ризикованою, як Ін'єкція SQL або Атака введення JavaScript або навіть може бути XSS. Це не призведе до знищення цілої бази даних або викрадення всіх даних з бази даних. Однак це не слід розглядати як незначне.
Як уже згадувалося раніше, основною метою цього типу ін’єкцій є зміна зовнішнього вигляду відображуваного веб-сайту зі зловмисною метою, відображення надісланої інформації чи даних кінцевому користувачу. Ці ризики можна вважати менш важливими.
Однак зміна зовнішнього вигляду веб-сайту може коштувати репутації вашої компанії. Якщо зловмисний користувач знищить зовнішній вигляд вашого веб-сайту, це може змінити думку відвідувача про вашу компанію.
Слід пам’ятати, що ще один ризик, який спричиняє ця атака на веб-сайт, - це викрадення особистості іншого користувача.
Як вже зазначалося, за допомогою HTML Injection зловмисний користувач може вводити цілу сторінку, яка відображатиметься для кінцевого користувача. Тоді, якщо кінцевий користувач вкаже свої дані для входу на підроблену сторінку входу, вони будуть надіслані зловмисному користувачеві. Цей випадок, звичайно, є найбільш ризикованою частиною цієї атаки.
Слід зазначити, що для викрадення даних інших користувачів цей тип атаки вибирається рідше, оскільки існує маса інших можливих атак.
Однак це дуже схоже на атаку XSS, яка викрадає файли cookie користувача та особисті дані інших користувачів. Існують також атаки XSS, які базуються на HTML. Тому тестування проти атак XSS та HTML може бути дуже схожим і проводитись разом.
Висновок
Оскільки ін’єкція HTML не така популярна, як інші атаки, її можна вважати менш ризикованою, ніж інші атаки. Тому тестування проти цього типу ін’єкцій іноді пропускається.
Також помітно, що літератури та інформації про HTML Injection напевно менше. Тому тестери можуть вирішити не проводити такого типу тестування. Однак у цьому випадку ризик атаки HTML може бути недостатньо оцінений.
Як ми аналізували в цьому посібнику, за допомогою цього типу ін’єкцій може бути знищений весь дизайн вашого веб-сайту або навіть викрадені дані для входу користувача. Тому настійно рекомендується включити HTML Injection до тестування безпеки та інвестувати хороші знання.
Ви стикалися з типовими HTML-ін'єкціями? Не соромтеся поділитися своїм досвідом у розділі коментарів нижче.
Рекомендована література
- Поглиблені підручники Eclipse для початківців
- Підручник з тестування ін’єкцій SQL (Приклад та запобігання атаці ін’єкцій SQL)
- Підручник з Python DateTime із прикладами
- Навчальний посібник із набору сценаріїв між сайтами (XSS) із прикладами, типами та профілактикою
- Підручник з ін’єкції JavaScript: Тестування та запобігання атакам ін’єкцій JS на веб-сайті
- Підручник зі створення сценаріїв Unix Shell із прикладами
- Знайти елемент селену за допомогою підручника з тексту з прикладами
- Підручник з основних функцій Python з практичними прикладами