Навеяно статьей про то, как чаты поломали... Хотя действительно чат ломать -
пара пустяков, но смотря какой чат еще... :-)))
1. Дырка в чате http://chat.chuvashia.com
В общем бываю я иногда (редко очень :-((, но все ж заглядываю) на чате "Город
над Волгой" (http://chat.chuvashia.com). Физически находится в Чебоксарах - мой
родной город, так что сами понимаете, иногда ностальгия начинает мучить, так что
сил нет терпеть, просто приходишь туда и с земляками (больше с землячками
конечно :-)), а их там много) душу просто отводишь...
Ну вот значит... Залазим на чат под ником nick... Ага... залезли... Смотрим на
нижний фреймик... Сохраняем его у себя и внимательно наблюдаем...
Первый прикол.
Смотрим на вторую форму... Дальше будут сокращенные цитаты:
<form method="POST" action="mainprog.pl">
<input type="hidden" name="action" value="logof">
<input type="hidden" name="username" value=nick>
<input type="hidden" name="userid" value=7134NICK8817>
<input src="exit.GIF" border="0" name="exit" width="80" height="30" alt="EXIT!"
type="image">
</form>
ага... все ясно... Так, заменяем на следующую конструкцию
<form method="POST" action="http://chat.chuvashia.com/mainprog.pl">
<input type="edit" name="action" value="logof">
<input type="edit" name="username">
<input type=submit>
</form>
Заметили 10 отличий? :-))). Ну что... Пробуем ввести имя того, кто в чате сидит,
например, "ibz"... Жмем кнопку... Ой... ibz ушел... Странно... опять зашел, еще
раз повторили операцию... Ой... Опять ушел... Все... работает значит :-))))
Сам в это время в чате болтаю, с девчонкой одной... Назовем ее Земфира...
nick: Земфира ты фокусы любишь?
Земфира: люблю :-)))
nick: А есть щас в чате, кто тебя чем-нибудь обидел?
Земфира: Зидан
nick: зидан, говоришь?
А сам в это время его убиваю :-)))
nick: ой, смотри, чо-то он вылетел :-)))?
Земфира: :-)), я уж подумала что это ты :-))))
Зидан в это время еще раз заходит, и я его еще раз выкидываю...
nick: да нет, что ты, как я могу это сделать, это ж только админы
могут, да и то, зидан же админ, его выкинуть нельзя :-)))?
Зидан заходит еще раз и еще раз, и все так же вылетает
Земфира: Да нет! это ты! Классно, я тоже так хочу! :-))))
Пока я ей обьяснял, что да как, зидан так и не появился... Видать комп
перегружал бедолага :-)))). Ага вот он снова появился... Тут мне конечно нужно
было остановится, но раз уж взял заказ, то выполняй его до конца... В общем
бедный зидан пробовал влезать в чат, успевал бросить одну фразу (или не успевал,
зависело от моей реакции :-))) и сразу же вылетал еще раз 15 наверно... Ну потом
они конечно догадались, выкинули ту девчонку, я выкинул того, кто ее выкинул,
меня тоже выкинули... В общем было весело. Мне прикрыли ип - я залез через
проксю - посмотрел, что там творится - а там трупы, трупы... зидан озверел,
понял наконец, что произошло и просто всех подряд убивал :-))) Вечеринка удалась
:-)))))
Мораль...
Ошибка у них (создателей чата) была в том, что они при action=logof не проверяли
userid (а это уникальный параметр, присваивается каждому входящему свой,
случайным образом), и выкидывали сразу по одному только username.
Эта ошибка сразу же была пофиксена, поэтому на этом чате ее не ищите, ищите на
других - наверняка она у многих встречается, не на всех чатах, например,
уникальными userid пользуются... У многих все гораздо проще :-))))
Второй прикол...
Смотрим теперь на первую форму :-)))) Надо сказать, что тэги в этом чате
запрещены, и поэтому особо не побалуешься... Шрифт не поменяешь, размер не
увеличишь... Обидно... Но не страшно... иба как говорится на каждую отвертку
есть труба с лабиринтом (звучит не так конечно, но матом мы ругаться не будем
:-))))
Смотрим на первую форму... оля-ля-ля... сколько параметров, некоторые и не
используются... О... кажется нашли что надо... среди прочих там есть и такой:
<select name="colname">
<option selected value=White style="color: White">White</option>
<option value="#F0F8FF" style="color: #F0F8FF">Aliceblue</option>
... и т.д.
<option value="#9ACD32" style="color: #9ACD32">Yellowgreen</option>
</select>
Быстренько меняем эту конструкцию на свою:
<input type=edit name="colname">
Так... сделали то что нужно... открываем то что получилось. и в нашем поле
вводим следующее:
red Face=Arial Size=6
кто догадался - это мы тэг <FONT> просто своими параметрами дополнили :-))))
Набиваем и отправляем свой текст - оп-па... Большая жирная красная надпись :-)))
(И смачный шлепок от админов за ваши баловства :-)))))
Ну вот, теперь мы крутые, как админы можем красиво писать :-)). Теперь другая
фишечка... а не попробовать ли нам поставить вот так вот
"
Правильно, правильно догадались. Ставим и что получаем в итоге? Страничка с
сообщениями "повисает", и не думай что это у тебя одного так :-)))) У всех
виснет... Дело в том, что там яваскриптик стоит, а он как раз на этой "
спотыкается, возникает ошибка, и страничка дальше не грузится... по крайней мере
у многих... :-))) НУ что... гадость это конечно порядочная, но что поделать -
аляфер ком аляфер как говорится :-))) Можно конечно утонченней сделать - послать
такое сообщение в приват врагу и он лишается привата на некоторое (иногда даже
очень длительное :-)))) время.
Ну что значит, рассказал я одному знакомому значит, он и побаловался немножко
:-)))). В общем чат на ремонте у них сейчас :-))))
Мораль...
Ошибка у них в том что:
первое - они не проверяли то, что именно приходит по параметру colname
второе - они не конвертили " в " (хотя даже если б и конвертили - все равно
неправильно было бы :-)))). Ладно хоть догадались > и
&rt убирать... а то сами понимаете:
&rt< дальше любой тэг, и пиши пропало... :-))))
Еще раз повторюсь, эти ошибки убрали уже (они старую версию чата вроде загрузили
- может и ее заодно проверить думаю?)
Автор: IbZ |