Вот... побродил по вашему сайту, нашел кое-что интересное для себя, и хочу
поделиться с вами кое-какой информацией. Может будет интересно. Навеяно
статьей про то, как чаты поломали... Хотя действительно чат ломать - пара
пустяков, но смотря какой чат еще... :-)))
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="https://xakep.ru/wp-content/uploads/post/11894/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< дальше любой тэг, и пиши пропало... :-))))
Еще раз повторюсь, эти ошибки убрали уже (они старую версию чата вроде
загрузили - может и ее заодно проверить думаю?)