Здравствуйте, молодые хакера,
хакеренки и хакерята. Сегодня мы опять разберем
банальную штуку - взлом чатов. Так как тема
довольно заезженная, сделаю небольшую поправку -
статья будет не про взлом, а про защиту. Вот как!
Типа, для админов и прочих модераторов.
1. Первой и самой главной
ошибкой является разрешение юзеру корявому
вводить метасимволы. Допустим, у тебя сервак под
управлением Unix-like системы. Метасимволы Unix-shell:
&;"\*?<>`^{} и т.д. Администратору следует
поставить в скриптах изменение символов.
Например, символ "<" в 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.
Вот основные меры предосторожности, которые
должны предпринять администраторы.