Как сделать deface сайта с помощью XSS

Deface сайта можно сделать, если вы получили доступ к ftp, залили shell и тд, но также это можно сделать с помощью обычной XSS. В этой статье я хочу рассказать, как использовать Stored XSS для того, чтобы изменить содержимое главной страницы сайта или определенной страницы для того, чтобы массово воровать cookies у пользователей и делать редирект на свой сайт.

7730960afb0d49a1e93fc9e4bca0428d.png
Вся информация предоставлена исключительно в ознакомительных целях. Я не несу ответственности за любой возможный вред, причиненный материалами этой статьи.




Итак, что такое deface (Википедия):
Deface (англ. deface — уродовать, искажать) — тип взлома сайта, при котором главная (или любая другая) страница веб-сайта заменяется на другую — как правило, вызывающего вида: реклама, предупреждение, угроза или шутка.
Зачастую доступ ко всему остальному сайту блокируется, или же прежнее содержимое сайта вовсе удаляется.
Основными причинами дефейса сайта являются:

1. Хулиганство, как самоутверждение начинающих хакеров.

2. Реклама, часто сомнительной продукции или услуги. На сайте публикуются рекламные картинки, ссылки на сайты (часто зараженные вирусами) и.т п.

3. Конкуренция между организациями. Одна фирма приносит фирме конкуренту имидживые и репутационные потери через взлом и дефейс их сайта.

Пример из 12-го года.

Stored xss на главной странице чаще всего встречаются (из моего опыта) на сайтах, в которых на главной странице отображается активность пользователей. В основном это:

*юзер добавил фото 1.jpg;
*юзер создал тему / блогпост;
*юзер вступил в группу;
*юзер добавил юзера в друзья.

Мы можем внедрить скрипт в имя юзера, название фото/группы/темы, создать второй тестовый аккаунт и добавить его в друзья, таким образом скрипт выполнится на главной странице.

Ещё для того, чтобы код выполнился у большого количества людей, не обязательно его внедрять на главную страницу, можно его внедрить в личные кабинеты всех пользователей, в комментарии какой-нибудь статьи, или создать объявление на сайте, например, на country.ua (3 000 место по посещаемости в Украине), в названии и в описании объявления фильтрация, но в имени пользователя её нету.

3e19fbb312824df3b04fbeca128e2927.png


1) Stored xss в комментарии к статье/теме — здесь все просто, пишем js в поле комментария, добавляем, ловим логи.

2) Для того, чтобы код выполнился у каждого юзера в личном кабинете, нужно использовать xss в связке с iDOR. Если с помощью idor можно изменить email любого юзера, восстановить аккаунт и взломать его — это хорошо, но что делать, если мы можем изменять такие данные, изменение которых ни к чему не приведет (например, редактирование заметки, адреса пользователя и тд)?

В таком случае мы должны найти в личном кабинете место, в котором в Post или в get запросе можно манипулировать id-ом юзера, изменять данные и начать перебор по всем возможным id. Важно, чтобы там была stored xss.

Мы можем разместить на главной странице скрипт кражи cookies, csrf эксплойт и redirect на фишинговый сайт:

1) Скрипт кражи cookies

">