Grabduck

Про хакеров, кадабру и ТМ

:

Решил поддержать хакерские веяния, и разбавить хабр своей историей. В ней вы не найдете изящных приемов, труЪ персонажей и захватывающих сюжетов, зато история абсолютно реальна и вскрывает весьма интересные вещи. К тому же всё кончилось хорошо, совесть меня не мучает, а написать об этом все равно стóит пока сам же хоть что-то помню.

История произошла прошлой весной и связана с редизайном автокадабры. Если вдруг кто не в курсе, то это один из проектов ТМ, который не очень получился, и потому не избалован вниманием со стороны своих же разработчиков. В любом случае всё это не важно, и мы просто переносимся туда, в 15-ое мая 2009-ого года. На кадабре произошел глобальный редизайн, причем не только с точки зрения внешнего вида, но и ряда механизмов саморегуляции, а так же других моментов. Народ бросился ковыряться в интерфейсах, отписываться кто что нашел, и кому что понравилось. Бурления масс только и были что о долгожданном редизайне, тем более, что каким он будет не знал никто.

Я же на фоне всех этих безумств решил написать наконец-то что-то в профиле «о себе». Написал две строки, но понял, что выводиться всё будет в одну. Совершенно без задней мысли вписал <br />, сохранил, а оно сработало… Мысль зашевелилась, попробовал другие теги — никаких ограничений. Решил попробовать JS, вписал , и к своему изумлению обнаружил, что это тоже работает во всю!

В новом интерфейсе висела кнопочка для отправки сообщений об ошибках, которой я и решил воспользоваться. Описал, что так и так, любезные люди, филонит у вас парсер в профиле, джаваскрипты всякие пропускает. Написал да отправил, заодно сходил на хабру проверить, но на хабре, разумеется, всё нормально фильтровалось. С чувством выполненного долга я почти было успокоился, но зацепился в мессенджере со старым знакомым, который тоже девелопер.

Описал ему ситуацию, посмеялись, да и… и пошла теперь мысль работать на двоих. Он быстренько сообразил JS, который отправлял кукисы ГЕТом, а я изобразил скриптик на сервере, который в лог сбрасывает все запросы. Вписал JS в свой профиль, обновил страницу, заценил в логах свой же PHPSESSID. Дальше стало не очень интересно, и я отправился на обед. Была полная уверенность, что дырку быстро замажут, и потому перспективы баловства в голове рисовались лишь в теории. Не зря же там кнопку для ошибок повесили? Обязательно будут реагировать оперативно — так я думал.

Удивительно, но после обеда дырка продолжала зиять, а в мой профиль даже зашли некты, оставив свой идентификатор сессии. Я открыл браузер, поменял свой ИД на присланные — вуаля, как и ожидалось, я стал другим пользователем! Это был восторг! Естественно, удалять посты или писать гадости от чужого имени я не думал, всё было интересно лишь с точки зрения эксперимента, который явно удавался! Первое, последнее и единственное, что я сделал — это вписал тот самый скриптик в их профили тоже.

Ну а дальше можно себе представить как это выглядело. Каждый новый посетитель захваченного профиля пополнял не только базу логинов, под которыми я мог гулять по сайту, но и расширял область перехвата идентификаторов. Первая удача случилась, когда я получил доступ от имени AVP — это такой старожил сайта, приближенный к разработчикам. На его счету было несколько тысяч (или все же сотен?) постов, и огромный архив личной переписки, в том числе и с разработчиками, читать который я посчитал ниже своего достоинства. В любом случае, уязвимость уже не выглядела такой уж невинной.

Но удача постучалась еще раз — я заполучил аккаунт одного из разработчиков! Увы, не помню ник, но какая разница? Красный феррари в его гараже я заменил на что-то типа салатового запорожца, потом нескольким другим людям тоже добавил машинок: розовых бентли и белых майбахов. На сайте появились посты, что, мол, гараж глючит, непонятные машины появляются. А настроению моему в тот момент улучшаться было просто некуда, я уже несколько часов чувствовал себя на вершине мира. Продолжало смущать разве что отсутствие реакции со стороны разработчиков.

Впрочем, к чести ТМ надо признать, что поменять почту и/или пароль было невозможно. Опасность была чисто на уровне доступа: можно было стереть все посты автора, написать от его имени гадостей кому-то в личку, прокомментировать что-то. Не сказать, что это сильно непоправимо, но нервы попортить даже так можно было ого-го.

Когда на очередной пост об ошибках кто-то из разработчиков вежливо попросил воспользоваться специальной формочкой, я не удержался, чтобы не съязвить на эту тему, воспользовавшись доступом другого разработчика. К этому моменту мне, честно говоря, стала надоедать ситуация. Вроде не «рога и копыта», дырка явно не эксклюзивная, ты им пишешь по специальной форме — и никакой реакции! Всё что оставалось сделать чтобы захватить мир ресурс, это написать невинный пост, который заставит всех зайти в чей-нибудь профиль. На самом деле ничего сложного! «У меня светофор в профиле синий, только у меня такой глюк?» — и куча народу бросилась бы по ссылке, оставляя там свои идентификаторы!

Написать на главной что да как я не мог, мало ли кто опередит горе-заплатчиков? Пришлось написать пост от имени разработчика о том, что до захвата кадабры осталось всего ничего, а администрация сушит вафли вместо реакции на сообщения об ошибках. Разумеется, через несколько минут после публикации кадабру закрыли на регламентные работы, а через какое-то время открыли и скриптинг в профиле уже не проходил.

* * *

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

Всем спасибо за внимание!