FAQ по XSS (будет обновляться)</span>
- Что такое XSS?
- Это аббревиатура фразы Cross Site Scripting. Впервые баг появился в 1997 году. Чтобы не путать с CSS (все знаем, что это такое...), аббревиатуру изменили.
- Что такое Cookies?
- Cookies служат для сохранения учетных данных сайта на компьютере поситителя.
- Что может хранится в Cookies?
- Логин, пароль, часто в зашифрованном виде. Иногда можно расшифровать, но чаще нельзя.
- Что нужно сделать, чтобы украсть Cookies?
- Чтобы перехватить cookies надо найти место на сайте, где можно выполнить XSS-атаку.
- Что я могу, если получу Cookies?
- Вы можете заменить свои Cookies на Cookies, которые украли и вы окажетесь в профиле жертвы, однако, чтобы узнать пароль, нужно его расшифровать.
- Какие бывают XSS?
- XSS бывают пассивные и активные:
- Пассивные - это XSS которые требуют от жертвы непосредственного участия + есть специфические ограничения и сложности.
- Активные - это XSS, которые, не требуют никаких дополнительных действий со стороны жертвы - ей достаточно лишь открыть страницу с вашим XSS и javascript - код выполнится автоматически.
- Возможны разные действия. Вот некоторые из них:
- Попытайтесь вставить код " <script>alert()</script> " в различные поля для ввода. Если вылезлом сообщение, значит XSS присутствует!
- Делайте те же действия с кодом " "><script>alert()</script> ". Давайте разберёмся, что же происходит? Есть различные сайты, где против XSS стоит защита (фильтр). Когда мы ставим символ " "> ", мы закрываем защиту и наш код выполняется без препятствий. Однако это не всегда работает!
- А как определить есть фильтр или нет?
- Просто в любое поле вводим " '';!--"<fuck>=&{()} ". А дальше, открываем следующую страницу и ищем наше слово "fuck" и следующие символы:
- Если " <> " так и остались то это первый признак уязвимости - значит фильтр имеет дырку!
- Если " ,"'\ " символы остались такими, какими были введены - это второй признак уязвимости - возможные дополнительные символы к последующей XSS атаке.
- Затем, если открыв исходный код, вы не обнаружили " <> " то скорее всего дырка в фильтре. Если открыв исходный код вы обнаружили, что " <> " заменены на другие символы, то это плохо - фильтр работает...
- А что нужно делать, если фильтр не показывает " <> "?
- Предположим, что у фильтра задача: убирать " <> " и " <script> ". Тогда пробуем " <zxcvbnzxc792> ". Если тот же результат, значит вы нашли дырку! Можно составлять боевой javascript код...
- А какие ещё бывают способы действия, если фильтр не показывает " <> "?
- Их немного. Вот несколько:
- Метод вложенного скрипта: " <sc<script>ript>alert()</sc</script>ript> ".
- Ещё можно вот так: " >>>><<script ".
- Кроме того, можно кодировать скрипт.
- Ну а теперь пожалуйста поподробней об активных XSS...
- Ладно. Тут надо использовать разрешенные теги и прикрываясь ими, выполнить запрос.
Предупреждение!
В некоторых тегах стоят * чтобы форум не переваривал это (форум поидее и есть фильтр). Чтобы скрипты работали, необходимо удалить *...
- [im*g]httр://www.qwewqw.ru/1.jpg[/im*g] Выходит крестик... Значит img используется и мы его подобрали (просто дело в том, что бывает img включен, а администраторы из панели создания сообщения его убирают, мол картинки вставлять нельзя. Если крестика нет, а висит всего лишь надпись, то попробуйте еще так:
- [im*g src=httр://www.qwewqw.ru/1.jpg]
К примеру мы добились крестика этим: - [im*g]httр://www.qweqw.ru/1.jpg[/im*g]
Проверим: держит ли фильтр пробел, добавляем пробел после расширения jpg: - [im*g]httр://www.qweqw.ru/1.jpg [/im*g]
если крестик есть - тогда всё хорошо.
Далее: у img существуют параметры dynsrc и lowsrc, которые держат яваскрипт. Пытаемся к примеру вставить: - [im*g]http://www.qwewqw.ru/1.jpg dynsrc=java script:alert()[/im*g]
Проверяем, отсылаем - появиться сообщение - значит нашли активную XSS и вместо alert() можете вставить любой скрипт.
Если фильтр не сдался попробуйте так: - [im*g]http://www.qweqw.ru/"/dynsrc="java script:alert()"/1.jpg[/im*g]
или: - [im*g]http://www.qwewqw.ru/"/dynsrc=java script:alert()/1.jpg[/im*g]
Если с приведённых примеров получился крестик, то httр://www.qweqw.ru/1.jpg заменяем на адрес сниффера (что такое сниффер, смотрим дальше)
Бывают случаи, когда jpg отключен админом.
- А что такое сниффер?
- Онлайн сниффер можно использовать для того, чтобы посмотреть или вести мониторинг за cookies. Если идти из прошлого впороса, то при правильной конфигурации, Cookies отправятся к нам на сниффер, а нам останется только заменить свои на новые или расшифровать...
- А где можно найти хороший сниффер?
- <span style="color:#4169E1">Прямо в интеренете. Вот адресс одного из них: ссылка.
Следующий урок:
Урок №2: Кое - что о PHP инъекции