Обзор эксплоитовМаг (icq 884888, http://wap-chat.ru) Начинающие багокопатели часто недооценивают такие уязвимости, как: XSS, CSRF, подмена каких-либо данных (читай - фишинг), раскрытие содержимого локальных файлов. Якобы эти баги и в подметку не годятся мощным и быстродействующим SQL-инъекциям, выполнению кода, переполнению кучи, заливке шелла, Local/Remote file inclusion и т.д., с помощью которых можно в короткий срок взять контроль над сайтом или программой. Сегодняшний обзор призван поколебать мнение сомневающихся, ибо упомянутые типы уязвимостей с успехом применяется хакерами во всем мире. Межсайтовый скриптинг при обработке RSS и Atom лент в Opera и Google ChromeBRIEFВ уже далеком 2006 году некие James Holderness и James M. Snell провели исследование, направленное на выявление различных XSS-уязвимостей в некоторых онлайн фид-аггрегаторах (например, Feed Demon). И вот, 15 сентября сего года еще один багокопатель Inferno решил продолжить исследование и раскопал аналогичные уязвимости в последних версиях популярных браузеров Google Chrome и Opera (full disclosure от Inferno находится по адресу: http://securethoughts.com/2009/09/exploiting-chrome-and-operas-inbuilt-atomrss-reader-with-script-execution-and-more). EXPLOITСам автор приводит несколько сценариев эксплуатации багов, и первый из них таков:
Собственно, эксплойты и примеры для этого сценария находятся тут:
Далее следует еще один замечательный сценарий:
Эксплойты для этого варианта сценария находятся тут:
В качестве бонуса исследователь напоминает нам тот факт, что всеми любимый Internet Explorer (в частности, 8 версия) автоматически поддерживает файлы с неизвестным расширением и может исполнить их контент как обычный html+javascript (многое зависит от mime type файла). Так что все вполне может подойти и для IE. Для примера зайди с помощью Internet Explorer по адресу http://securethoughts.com/security/rssatomxss/anyfile.tx и насладись простейшим javascript-алертом из данного файла:
Также существует и некий третий сценарий для полного захвата всех новостных лент Оперы, но до выхода официального патча от разработчиков Inferno не хочет сообщать нам никаких подробностей :(. TARGETS
SOLUTIONДля решения проблемы в случае использования Google Chrome просто обновись до последней версии браузера (v3.0.195.21 и выше), а вот в случае использования Opera не все так просто - разработчики считают баг фичей, так что отключай выполнение js либо тщательней проверяй, по каким ссылкам ходишь. Подмена загружаемых файлов в Mozilla FirefoxBRIEFО таком известном браузере, как Огнелис багокопатели тоже не забыли. Недавно Jeremy Brown (http://jbrownsec.blogspot.com) обнаружил, что Firefox позволяет одним пользователям системы подменять загружаемые файлы других пользователей. Багофичу наиболее просто эксплуатировать в Linux-системах. Суть уязвимости заключается в том, что, когда пользователь начинает загружать файл, появляется диалоговое окно Downloads, для которого браузер использует фиксированный путь с директорией /tmp. Злоумышленник может разместить файл в этой самой директории /tmp перед началом загрузки файла и подменить содержимое загружаемого файла. EXPLOITДля обнаруженной уязвимости автор пока еще не выпустил эксплойт в надежде на то, что кодеры Мозиллы как можно скорее исправят баг: «I will be releasing exploit code as soon as updates fixing the issue are provided». Несуществующий эксплойт с успехом может заменить видео, записанное Jeremy Brown'ом для подробной и наглядной ручной эксплуатации уязвимости. Там он показывает, как заменить один скачанный юзером с доверенного сайта исходник совершенно другим, измененным под наши хакерские цели. Посмотреть и скачать видео можно тут: http://securitytube.net/Zero-Day-Demos-(Firefox-Vulnerability-Discovered)-video.aspx (советую регулярно просматривать этот сайт - своего рода хакерский YouTube). TARGETSMozilla Firefox 2.x и 3.x SOLUTIONПока решения для исправления уязвимости не существует. Тебя спасут лишь внимательность и настороженность. Межсайтовый скриптинг в XOOPSBRIEFТак как основная тема сегодняшнего обзора - XSS, нельзя не упомянуть еще об одной полезной для нашего хакерского дела уязвимости. На сей раз банальный cross site scripting был найден в таком небезызвестном php-движке, как XOOPS. Бага присутствует в файле ./xoops233/modules/pm/viewpmsg.php. Давай вместе проследим за переменной $_REQUEST['op']:
Как видишь, $_REQUEST['op'] без какой-либо дополнительной фильтрации попадает в hidden-форму темплейта, выводимого на экран движком, массив $_REQUEST также нигде не проверяется, и мы спокойно сможем использовать недоработку для кражи админской сессии и последующего зашелливания сайта-жертвы через админку. EXPLOITАвторы уязвимости (группа Sense of Security) предлагают следующий PoC-эксплойт: Подробности ты сможешь узнать на их сайте по адресу: http://www.senseofsecurity.com.au/advisories/SOS-09-005.pdf. TARGETS SOLUTIONДля решения проблемы тебе необходимо установить последнюю версию движка с сайта производителя www.xoops.org (на данный момент – 2.3.3b). Межсайтовый скриптинг в Ruby on RailsBRIEF Проблема XSS не обошла стороной и такой известный продукт, как Ruby on Rails и, в частности, построенный на нем Twitter.com. EXPLOITЭксплойт для описываемой XSS может быть представлен во множестве вариантов, например:
Если у тебя есть возможность изменять содержимое атрибута title и ты запишешь в квадратные скобки символ за номером 0131 (ALT + 0131), то следующие за ним кавычки в мультибайтовой кодировке просто съедятся (превратятся в некий четырехбайтовый символ) и закрывающий тег «>» будет уже внутри других кавычек:
Дело в том, что, к примеру, в кодировке GB2313 символ 0131 (в десятичной системе) на самом деле не является отдельным символом - он лишь начало другого символа, то есть в результате инжекта имеем символ 0131 + кавычки = «отдельный символ». Подробнее о данном векторе межсайтового скриптинга можно почитать на буржуйском форуме http://www.criticalsecurity.net/index.php/topic/31640-xss-via-multibyte-characters. TARGETS2.0.0 и все подверсии. SOLUTIONКак всегда, не забываем обновляться. Актуальные версии Ruby on Rails - 2.3.4, 2.2.3, скачать их можно на сайте производителя – rubyonrails.org. Межсайтовый скриптинг в Bitrix CMSBRIEFВ отечественной разработке от 1C - Bitrix CMS (движок используется, например, таким популярным секурити-порталом, как securitylab.ru, сетью магазинов бытовой электроники «Эльдорадо» и несколькими тысячами других известных фирм) не так давно были обнаружены cross site scripting уязвимости. О них, в рамках фестиваля Chaos Constructions 2009, сообщил Владимир Воронцов (http://onsec.ru). Первая бага существует из-за отсутствия фильтрации символа одинарной кавычки в http-заголовке «Referer», который отображается в теге «<a>» на страницах статистики в административной части модуля «Веб-аналитика». Зайдя на сайт жертвы со специально сформированным реферером, злоумышленник внесет свой злонамеренный код прямо в админку сайта, что чревато похищением админских кукисов. Вторая бага возникает из-за неполной фильтрации входных данных в модуле WAF («Проактивная защита»). Удаленный пользователь может обойти установленные фильтры и произвести XSS-нападение. Для успешной эксплуатации требуется заранее внести свой код в базу данных движка (комментарии, посты и т.д.). EXPLOITДля первой уязвимости сам автор приводит следующий формат пересылаемого заголовка Referer: Также в этом примере используется и обход проактивного фильтра WAF-движка 1С-Битрикс. Для второй баги security-эксперт за 40 фестивальных минут смог найти такие векторы обхода фильтра защиты:
Проактивный фильтр WAF проверяет входные данные пользователя на наличие потенциально опасных строк по огромной базе регулярных выражений и фильтрует множество вариантов реализаций SQL-инъекций, Includes, XSS. Но именно эти варианты разработчики как-то не учли :). TARGETSBitrix CMS <= 8.0.5 SOLUTIONДля своевременной защиты обладатели Битрикса легко смогут обновиться через встроенный функционал обновления. Для устранения первой уязвимости с реферером можно также включить модуль проактивной защиты. Раскрытие данных в Wap-motorBRIEFПочему-то тема WAP-сайтов встречается в ][ крайне редко. Настало время исправить это недоразумение. Итак, недавно найденная уязвимость просмотра содержимого произвольных локальных файлов в CMS Wap-motor, которую используют множество Wap-сайтов на территории всего СНГ и ближнего зарубежья, позволяет прочитать важные конфиги и файлы текстовой базы данных движка. Проведем небольшой реверсинг скриптов жертвы вместе с автором баги Inj3ct0r'ом (Inj3ct0r.com). 1. Открываем файл ./gallery/gallery.php:
2. Далее ./template/regglobals.php:
Теперь рассмотрим подробней, что же происходит в приведенных скриптах при передаче параметра $_GET['image']: 1. Переменная $_GET['image'] глобализуется и превращается в $image: 2. $image проверяется как $check_url в нескольких eregi-регулярках на предмет нехороших символов; 3. Затем производятся не совсем понятные трезвому программисту манипуляции с расширением требуемого файла; 4. Нужный файл читается и отдается пользователю. EXPLOITКазалось бы, через приведенные выше регулярки невозможно провести никакой directory traversal, но, вспомнив метод Электа для ereg[i]-функций, вполне успешно можно заюзать любимый всеми нулл-байт. Исходя из этого, схема эксплуатирования баги может быть следующей: 1. Читаем список админов:
2. Читаем credentials любого из админов:
3. Наслаждаемся админскими правами. Конечно, для успешного внедрения нулл-байта на сервере жертвы должны быть отключены magic_quotes. TARGETSWap-Motor <= 18.0. SOLUTIONИщем последнюю версию движка на сайте производителя - http://visavi.net/wap-motor. |