Предполагается, что читатель знает, что такое CGI, и на этом мы построим свое объяснение.
В любом чате фрейм, в котором вы пишете сообщения, генерится динамически (для каждого входящего) и, возможно, содержит несколько скрытых полей. Типа (так хранится UserID).
Идея в следующем: сохраняем содержимое этого фрейма на диске и исправляем его так, чтобы можно было с ним работать со своего винта. Т.е. заменяем ссылки типа /cgi-bin/refresh.pl на полный путь www.chat.nsk.su/cgi-bin/refresh.pl и вместо скрытых полей формы пишем типа (что бы можно было их изменять) После этого делаем HTML документ для “сборки чата” из кусков. Т.е. примерно так:
"First.htm"
Start.htm — это и есть тот фрейм, который мы сохранили и изменили.
После этого просто браузером открываем страницу (First.htm). Исразу(!!!) попадаем в чат, минуя стандартную процедуру входа.
Это позволит:
1. Обходить зарегистрированные имена.
2. Прятать свой IP от киллеров за счет взятия чужого ID'a.
Дальше интересно вычислить IP участников. Если не запрещен тэг , то это позволит вставлять в свое сообщение ресурс со своей машины. Сам по себе звук не нужен, но этот косяк позволил вставить в свой месс строку типа . Этот скрипт (spy.exe) вызывался с машины каждого участника чата. Это позволит увидеть IP всех (скрипт просто сохраняет на винт данные из переменной окружения REMOTE_ADDR). Примерно в это же время в чате появились приваты. Это значит, что документ в главном фрейме (тот, где мессы все) стал называться по-другому.
После этого в скрипт (spy.exe) был добавлен вывод ID'a из переменной окружения HTTP_REFERER. Ну, а сопоставить ник с ID'ом не проблема, т.к. ID каждого прописан там же примерно в такой строке Тут ник
(Эта строка взята из правого фрейма, где можно вызвать функцию “Кто в чате”).
После этого перестало быть проблемой сопоставление ника и IP. Затем можно позабавиться с приватами.
Используя метод сохранения странички на винт, можно получить форму для отправления приватов от кого-то кому-то. Т.е. можно в отсылаемом приватно сообщении проставлять имя отправителя.
Осталось только одно. Известно, что в чате есть киллеры, но ничего не известно про то, что это, где это, как это. Известно только, что для того, чтобы киллерствовать, надо зайти на какую-то страничку. Очевидно, что в этой киллерской страничке показываются имена. Предположим, что имя показывается таким, каким его вводить. Исходя из этого, под именем MyNick зашел в чат (через прокси) и начал легонько ругаться (надо было, чтобы киллеры зашли на свою страничку). После этого, изучив лог нашего ВебСервера (OmniHTTPd beta), можно увидеть там обращение со страницы, не относящейся к известным нам страницам чата. Лезем на эту страницу и получаем запрос на ввод пароля, со словами “Дорогой администратор...”. Это приятно греет душу. Дальше можно подобрать пароль или еще что придумать. Но ситуация сложилась так, что мы оказались в одной сети с киллером, и, запустив сниффер, мы получаем пароль.