Дата публикации: | 06.02.2003 |
Всего просмотров: | 1728 |
Опасность: | Низкая |
Наличие исправления: | |
Количество уязвимостей: | 1 |
CVE ID: | Нет данных |
Вектор эксплуатации: | |
Воздействие: | |
CWE ID: | Нет данных |
Наличие эксплоита: | Нет данных |
Уязвимые продукты: | |
Описание: | Opera's Javascript console использует три html файла, постоянно находящиеся в инсталляционном каталоге Opera. Наиболее важный из них - "console.html", который содержит всю логику консоли. Консоль перечисляет необработанные исключения, которые возникли в течение сеанса. Javascript может послать эти исключения, используя инструкцию "throw" и Opera также добавляет собственный способ создания отладочных сообщений с методом "opera.postError". Чтобы отобразить кликабельный URL должным образом, Opera делает некоторые форматирования на посланном сообщении исключения, чтобы превратить его в сслыку: newmsg = msg.replace( /</g, "<" ). ═══════replace( />/g, ">" ). ═══════replace( /https?:\/\/\S+/g, create_link ). ═══════replace( /file:\/\/(?:\S|(?:[ ](?=[^\n\r]*\.)))+/g, create_link );Первые две строки возможно обрабатывают безопасность этой строки, чтобы она не содержала HTML кода. Последние две строки предназначены для преобразования стоки в фактический URL. К сожалению, каждая из этих двух строк позволяет атакующему ввести собственные атрибуты в ссылку. В результате атакующий может получить доступ к file:// protocol, который, может иметь следующие значения:
Второе уязвимое выражение - /file:\/\/(?:\S|(?:[ ](?=[^\n\r]*\.)))+/g - соответствует чему-нибудь начинающемуся с file://, пока не появляется точка. Та же самая ошибка, что и в первом случае – могут использоваться кавычки, чтобы добавить дополнительные атрибуты к ссылке. Добавление произвольных атрибутов к ссылке позволяет выполнять произвольный код сценария. Атрибут "style" в большинстве элементов, например, может содержать свойства типа "background-image", которые обычно указывают на URL. Этот URL может быть "javascript:[code]", который будет выполнен в контексте консоли (file:// protocol). Пример: 1. Первое выражение: open("file://localhost/console.html","",""); opera.postError("http://\"style=\"background-image:url('javascript:alert(loc ation.href)')\"");2. Второе выражение: open("file://localhost/console.html","",""); opera.postError("file://\" style=\"background-image:url('javascript:alert(location.href)')\".");Два демонстрационных эксплоита можно найти в ссылках, опубликованных ниже. Первый из них демонстрирует возможность внедрения отладочного сообщения, второй просматривает файловую систему пользователя, используя утилиту типа эксплорера. Уязвимость обнаружена в Opera 7 NT4, Opera 7 Win98, Opera 7 Win2000, Opera 7 WinXP. |
Ссылки: | Phantom of the Opera (GM#003-OP) |
|
http://security.greymagic.com/adv/gm003-op/phSimple.asp http://security.greymagic.com/adv/gm003-op/phExp.asp |