![]() |
#6 |
Участник
|
Об уязвимости MSIE
В продолжение темы "атак на компьютеры пользователей"... Читая один не относящийся к тематике форума блог, обнаружил там упоминание о занимательной дыре в MSIE. Вот выдержка из упомянутого в блоге доклада Alexander Sotirov & Mark Dowd Bypassing Browser Memory Protections в вольном переводе (стр.33):
Цитата:
MSIE версии 6 и выше позволяет внедрять в страницы элементы управления .NET (иногда именуемые элементами пользовательского интерфейса - UI Controls). Эти элементы управления являются бинарными файлами .NET, которые выполняются в "песочнице" (т.е. в ограниченной контролируемой среде) внутри процесса браузера и могут восприниматься как .NET-эквивалент Java-апплетов, либо как более безопасная замена элементов управления ActiveX. Загружаются эти элементы управления браузером за счет использования тега <OBJECT>:
PHP код:
Однако, поскольку формат библиотек .NET по структуре является надмножеством формата PE-файлов, CLR отображает их в память как обычные исполняемые файлы. Это значит, что ядро разбирает PE-заголовок и загружает все секции в память точно так же, как и для обычных исполняемых файлов или DLL-библиотек. По ходу этого процесса ядро устанавливает разрешения для каждой секции в соответствии с флагами, прописанными для нее в PE-заголовке. Если бинарный файл содержит исполняемую секцию (т.е. секцию с соответствующим флагом в заголовке), то она будет загружена в память, и ее страницы будут помечены как исполняемые. Все это дает возможность злоумышленнику поместить исполняемый код оболочки в секцию .text (обычное название для секции кода исполняемых файлов, собираемых Microsoft'овским компоновщиком) библиотеки .NET и сделать так, что этот код будет загружен в помеченные как исполняемые страницы памяти в контексте процесса браузера. В Windows XP адрес, по которому будет загружен исполняемый файл, зависит от значения image base, указанного в PE-заголовке этого файла, которое также контролируется злоумышленником. Возможность разместить исполняемый код оболочки по известному адресу в адресном пространстве обычно имеет первостепенное значение в успешном использовании уязвимости, связанной с нарушением содержимого памяти. Использование элементов управления .NET для размещения такого кода по ряду причину чрезвычайно полезной для злоумышленников:
![]() Последний раз редактировалось gl00mie; 28.08.2008 в 16:03. Причина: typo |
|