Подробное руководство по межсайтовому скриптингу (XSS) (ч.2)

Kenshiro

Script Kiddie
22.05.2020
10
1
6
Влияние межсайтового скриптинга

С момента последнего момента межсайтовый скриптинг удерживает свои позиции в списке OWASP Top10, поскольку это один из самых важных и наиболее широко используемых методов атаки в Интернете.

Таким образом, эксплуатируя данную уязвимость, злоумышленник может:

  • Захват и доступ к аутентифицированным сеансовым cookie-файлам пользователя.
  • Загружает фишинговую страницу, чтобы побудить пользователей к непреднамеренным действиям.
  • Перенаправляет посетителей на другие вредоносные разделы.
  • Раскрывать конфиденциальные данные пользователя.
  • Манипулирует структурой веб-приложения или даже искажает ее.
Тем не менее, XSS был зарегистрирован с «баллом CVSS» «6,1» как «средний» уровень серьезности.

· CWE-79: Неправильная нейтрализация ввода во время создания веб-страницы («Межсайтовый скриптинг»)

· CWE-80: неправильная нейтрализация связанных со скриптами HTML-тегов на веб-странице (базовый XSS)


Типы XSS

До сих пор у вас могло быть четкое представление о концепции JavaScript и XSS и их основных последствиях. Итак, давайте продолжим по тому же пути и разделим этот XSS на три основных типа:

§ Сохраненный XSS
§ Отраженный XSS
§ XSS на основе DOM

Сохраненный XSS

«Сохраненный XSS», часто называемый «Постоянный XSS» или «Тип I», поскольку благодаря этой уязвимости внедренный вредоносный сценарий постоянно сохраняется на сервере базы данных веб-приложения, а затем сервер отбрасывает его обратно, когда пользователь посещает соответствующий интернет сайт.

Однако это происходит как -. когда клиент щелкает или наводит курсор на конкретный зараженный раздел, внедренный JavaScript запускается браузером, поскольку он уже был в базе данных приложения. Следовательно, эта атака не требует каких-либо методов фишинга для нацеливания на своих пользователей.

Наиболее распространенным примером хранимого XSS является «опция комментариев» в блогах, которая позволяет любому пользователю вводить свой отзыв в форме комментариев для администратора или других пользователей.
Давайте рассмотрим это на примере:
Веб-приложение просит своего пользователя оставить отзыв, поскольку на его веб-странице есть два поля ввода - одно для имени, а другое для комментария.

1600753592535.png
Теперь, когда пользователь нажимает кнопку отправки, его запись сохраняется в базе данных. Чтобы было понятнее, я вызвал на экран таблицу базы данных как:
1600753622451.png
Здесь разработчик доверяет своим пользователям и не размещал никаких проверок в полях. Таким образом, злоумышленник обнаружил эту лазейку и поэтому воспользовался ею, поскольку - вместо того, чтобы отправлять отзыв, он прокомментировал свой вредоносный скрипт.

Код:
<script>alert("Hey!! This website belongs to Hacking Articles")</script>
На приведенном ниже снимке экрана видно, что злоумышленник добился успеха, поскольку веб-приложение отображает всплывающее окно с предупреждением.
1600753756620.png

Теперь, вернувшись к базе данных, вы можете видеть, что таблица была обновлена с именем «Ignite», а поле Feedback пусто, это означает, что сценарий злоумышленника был успешно внедрен.
1600753776444.png
Итак, давайте переключимся на другой браузер как другой пользователь и снова попробуем оставить искренний отзыв.

1600753847495.png
Теперь, когда мы нажимаем кнопку «Отправить», наш браузер выполнит внедренный скрипт и отобразит его на экране.
1600753872775.png


Отраженный XSS

Отраженный XSS, также называемый «Non-Persistence XSS» или «Тип II», возникает, когда веб-приложение немедленно отвечает на ввод пользователя без проверки того, что пользователь ввел, это может привести к тому, что злоумышленник внедрит исполняемый код браузера в один ответ HTML. . Это называется «непостоянным», поскольку вредоносный сценарий не сохраняется в базе данных веб-сервера, поэтому злоумышленнику необходимо отправить вредоносную ссылку через фишинг, чтобы поймать пользователя.
Отраженный XSS является наиболее распространенным, и поэтому его можно легко найти в «полях поиска веб-сайта», где злоумышленник включает некоторые произвольные коды Javascript в текстовое поле поиска и, если веб-сайт уязвим, веб-страница возвращает событие в том виде, в котором оно было. описано в сценарии.


Reflect XSS - бывает двух типов:

§ Отраженный XSS GET

§ Отраженный XSS POST

Чтобы лучше понять концепцию Reflected XSS, давайте рассмотрим следующий сценарий.

Здесь мы создали веб-страницу, которая, таким образом, позволяет пользователю искать определенный учебный курс.

Итак, когда пользователь ищет «Bug Bounty», на экране снова появляется сообщение «Вы искали Bug Bounty».

1600754098308.png

Таким образом, этот мгновенный ответ и параметр «поиск» в URL-адресе показывают, что страница может быть уязвима для XSS, и даже данные были запрошены через метод GET.

Итак, давайте теперь попробуем сгенерировать несколько всплывающих окон, вставив коды Javascript в этот параметр «поиска» как
Код:
<script>alert("Welcome to hacking Articles!!")</script>
Супер!! На скриншоте ниже вы можете видеть, что мы получили предупреждение как «Добро пожаловать в статьи о взломе !!»


1600754252324.png
Интересно, почему все это произошло? Давайте посмотрим на следующий фрагмент кода.
1600754303535.png
С легкостью отображая сообщение на экране, разработчик не настраивал проверку ввода в функции ignite, а просто «эхо» «выводит сообщение поиска» с помощью ignite ($ search) через переменную «$ _GET». .

1600754337419.png
 

Об LS-LA

  • Мы, группа единомышленников, основная цель которых повышать уровень знаний и умений.
    Не забывая о материальном благополучии каждого)

About LS-LA

  • We, a group of like-minded people, whose main goal is to increase the level of knowledge and skills.
    Not forgetting about everyone’s material well-being)

Быстрая навигация

Пользовательское меню