Инъекция уязвимости в сайт

Combat

Постоялец
ДРУЗЬЯ ФОРУМА
ЮБИЛЕЙНАЯ ЛЕНТА

Combat

Постоялец
ДРУЗЬЯ ФОРУМА
ЮБИЛЕЙНАЯ ЛЕНТА
Регистрация
19 Окт 2018
Сообщения
815
Реакции
582
Репутация
0
Многие сайты уязвимы. И сейчас мы поговорим о самом популярном способе внедрить вредоносный код - XSS.




XSS (или CSS - cross-site-scripting) - это когда ты вставляешь в reddit.com какой-нибудь код, смотря только интерфейс страницы, а другой юзер при открытии сайта этот код у себя автоматически исполняет. Как ты уже догадался, для этого используются Javascript-инжекции. Сайт для браузера жертвы всё ещё остается “безопасным”, но помогает вам творить свои темные дела.

Итак, наша цель - выполнить Javascript-код в браузере жертвы.
Вопреки распространенной точке зрения об “уязвимых строках поиска”, реальных способов достичь цели существует как минимум три. Назовем их стилями (или типами) атак:
  • XSS, сидящий в базе данных ресурса. Он монолитен. Иногда его называют “Stored”, то есть хранящийся на серваке.
  • Link-XSS, когда имеется ввиду вредоносный запрос пользователя. Как правило, это манипуляция со ссылками. Для его реализации нужно заставить пользователя послать этот запрос. Ссылка - хороший подлог.
  • DOM-XSS, где уязвимость возникает в коде на стороне клиента, а не на стороне серверного кода. Обычно это уязвимости в Javascript-сценариях. Таким образом, это случай, когда пользователь способен навредить сам себе.

Пример Stored:
  • Вы приходите на сайт и пишете коммент, предварительно вписав туда какой-то код. Юзер имеет дело с результатами ваших трудов каждый раз, когда видит эту страницу.
  • Вы приходите на сервер и внедряете туда какую-нибудь хуйню, например, с помощью SQL-Injection, в виде js-кода, предварительно закодив его на сбор данных ввода (любимый сценарий для кей-логгера)

Динамический XSS:
  • Есть сайт, на котором

    Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

    . Если вы искали хуйню и не нашли её, сайт пишет “Эй, чувак, [хуйня] на может быть найдена. Ну и что такого? Иногда строка, содержащая ваш запрос, не фильтруется. То есть присутствует шанс ввести туда какой-то скрипт, после чего сайт выдаст вам его обратно. В итоге, по сути, вы хакаете сами себя - эта страница видна только тому, кто сформировал запрос. Но отправлять никому никаких ссылок не нужно, вы можете разместить нужный скрипт на нейтральном сайте, куда жертва отсюда ходит.



Не существует никаких конкретных методичек, по которым можно было бы действовать и ломать сайты пачками. Если бы они были - скорее всего, стоили бы миллионы, либо вы вообще бы о них не узнали. Сегодня из более-менее понятных методичек, которые работают достаточно хорошо, существуют только гайды OWASP для системных администраторов, чтобы они от хацкеров хоть как-то защищались. Но половина одменов не знает про OWASP, так что…

В общем, схема у нас примерно такая:
  1. Вова ходит на сайт к Пете. Сайт Пети имеет пользаков, пароли, и, например, хранит ещё всякую платежную инфу. Вова ленивый, и Петя знает об этом, поэтому сайт хранит куки авторизации, чтобы Вова каждый раз не вводил данные заново.
  2. Сайт Петя писал сам. Он не очень умный. Когда вы хотите что-то найти, но результат не найден, страница говорит “не найдено”, а строка url выглядит так:

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

Однако если написать что-то типа:
<script>alert('хана тебе, Петя')</script>​
Появится сообщение с “Хана тебе, Петя”
Сайт считывает скрипты из поиска, ещё и URL просто идеален для всяких пакостей (понимает вот такое):

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

<script'>alert('fuckingrandom');</script>​
Ок, пишем так:

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

<script%20src="

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

"></script>.​
Как ты уже догадался, мы предварительно заготовили на нашем сайте (evilsite.com) специальный файл, который будет пиздить данные.
3. Создаем сообщение на сайте Пети (рассылаем хуйню на мыло, etc.) пользакам сайта месседж с нашей ссылкой.
4. Лох идет по ссылке, видит поиск, отображается
"lohi не обнаружены",​
далее запускается наш скрипт (пользак его не видит), подгружается файл с сайта evilsite и происходит xss атака. Пользак тупит и идет гулять.
5. Наш скрипт stealer.js запускается в браузере лоха., как будто это скрипт с сайта Пети. Он хавает авторизационные куки лоха и отправляет на наш сервак.
6. Теперь мы берем захваченные куки и используем их в своем браузере, как будто они принадлежат нам…. Поздравляю, мы - это Вова, это наша учетка.
7. Идем в настройки профиля, находим там карточку, пиздим данные, меняем пароль.

Но не остановимся на этом. Спиздив данные всех пользаков, которые кликнули по ссылке, мы как-нибудь заставим самого Петю кликнуть по ебучей ссылке. И если это произойдет, то у нас будет учетка Пети. Всё, сайт захвачен, ты молодец.

Как я уже говорил, к каждой жертве нужен индивидуальный подход, поэтому ищи ресурсы, хакай и развивайся.

Удачи.
 
Сверху