Что такое XSS, или чем опасен JavaScript на сайте?
https://t.me/E7TEAMВсем доброго времени суток, с вами команда E7TEAM

Введение:
Иногда на сайтах требуется разрешить пользовательский ввод, например это может быть в: имени, описании аккаунта, посте и т.д
Казалось бы, что здесь может быть опасного? Если ввод не фильтруется, то много чего!
Начнем из далека. Большинство сайтов чтобы не заставлять пользователей входить с одного устройства много раз используют так называемые cookie.
Что такое cookie?
Простым языком — параметр который сайт сохраняет у себя и ставит вам, каждый раз когда браузер отправляет его, сервер сверяет ваши куки с теми что лежат в базе и понимает что это действительно вы.
Куки используются для входа в сеансы, когда вы заходите с какого-то либо устройства то начинаете новый сеанс работы с сайтом.
Основное:
Причем тут JavaScript и что такое XSS?
JavaScript — язык программирования который обрабатывается браузером чтобы выполнять определенные действия.
XSS — атака, при которой атакующий помещает свой JavaScript код на страницу. При посещении страницы пользователем, браузер исполняет этот код.
JavaScript может получать cookie от браузера и отправлять запросы на сторонние сайты. Что это значит?
Если атакующий может поместить свой JavaScript код, то он может получить cookie и отправить их на свой сервер!
А так как cookie используется для входа в аккаунт, то атакующий может взять контроль над учётной записью! Давайте посмотрим на атаку на практике.
Перейдем на http://www.xssgame.com/
Логинимся в гугл аккаунт и вводим в поле поиска <scirpt>alerr(1)</script>.
Нажимаем поиск и получаем объявление от сайт "1". Поздравляю наше первое XSS!

Конечно в данном случае перехватывать нечего, но!
Найдя JavaScript на реальном сайте можно использовать данный скрипт: https://github.com/R0B1NL1N/WebHacking101/blob/master/xss-reflected-steal-cookie.md
Запускаем свой веб-сервер и публикуем пэйлоад из гитхаба.
2017-02-09 10:05 PM - 192.168.0.254 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:51.0) Gecko/20100101 Firefox/51.0 ------------------------------------------------------------------------------------------------------------------ Cookie Name Value ------------------------------------------------------------------------------------------------------------------ acopendivids ['swingset,jotto,phpbb2,redmine'] security ['low'] acgroupswithpersist ['nada'] PHPSESSID ['93l9ahf1120bkp79t5ehbkc0m4']
Вот так выглядит перехват cookie, что делать после получения?
Нам нужно подменить свои cookie, сделать это можно с помощью специальных расширений для браузера, просто сделайте поиск по cookie в расширениях и вместо своих куки поставьте перехваченные!
Так мы и получаем контроль над учётной записью.
Заключение:
Никогда нельзя доверять вводу пользователя. С помощью ввода без фильтров можно перехватить учётную запись другого пользователя, или что хуже администратора.