Навеяно статьей про то, как чаты поломали... Хотя действительно чат ломать - пара пустяков, но смотря какой чат еще... :-)))
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< дальше любой тэг, и пиши пропало... :-))))
Еще раз повторюсь, эти ошибки убрали уже (они старую версию чата вроде загрузили - может и ее заодно проверить думаю?)
|