Информационная безопасность

индекс
289,89

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

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

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



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

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

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

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

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

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

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

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

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

* * *

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

Всем спасибо за внимание!
+268
9 марта 2010, 22:40
20

комментарии (62)

+19
zvirus #
Боюсь, если бы вы написали это еще в мае 2009, вероятно вас бы вынесло НЛО с хабра.
А так, очень интересная история.
+3
aLexusPro #
Спасибо, но и на данный момент пост скорее унес, чем принес :)
+11
braintorch #
И НЛО было бы не право. Если разработчик не просматривает сообщения об ошибках и уязвимостях, это его вина.
+2
zvirus #
Согласен с вами. Это я чисто логически мыслю, судя по политике ресурса.
Это закрытая и больная тема, поэтому ее особо здесь не «помусолишь».
+2
charon #
а скажите, время на рассмотрение жалобы разрабам дать надо? Автор же начал гадить уже после обеда — дня не прошло! По хорошему, хотя бы несколько дней надо было дать!
+2
braintorch #
Видимо, я невнимательно читал (спросонья, наверное). У меня почему-то сложилось впечатление, что история развивалась на протяжении пары недель. =)
0
aLexusPro #
«На рассмотрение жалобы»? Ну да, комиссию пусть соберут, посовещаются, решат что же делать и насколько это опасно, назначат ответственного, подготовят пресс-релиз… закрыть JS в профиле — это ж проблема-то какая, неожиданная и сложноустранимая, а неоднозначная какая.

Утром зарелизили новую кадабру, должны были сидеть с ушками на макушках. Днем я нашел косяк, воспользовался специальной формой, дал час-два на раскачку — по-моему всего этого более чем достаточно, реакции никакой. Я полез вглубь.
0
charon #
возможно, вы ведущий разработчик и знаете больше меня (я не разраб), но два часа на ликвидацию бреши — это маловато, по-моему. Вообще, неплохо было бы поинтересоваться у общественности, что они об этом думают. Сделаете голосовалку?
Я просто ссылался на информацию о закрытии брешей уязвимости в различных программных продуктах. Даже с учётом свежего перезапуска проекта меньше суток — это слишком мало. Такое впечатление, что у вас свербило.
+3
aLexusPro #
Я бы согласился, если бы разговор шел об автообновляемом приложении, к которому нужно патч написать, да разослать всем. Или если бы разговор шел о просто сайте, который просто работает, и у людей есть свои какие-то задачи. Но после запуска нового проекта не отреагировать за пару часов на достаточно серьезную уязвимость, на которую и реагировать-то не сложно — это именно промах. Причем, очевидно, что промах именно во внимании к письмам об уязвимостях. И я скажу даже больше, ведь автокадабру писали не с нуля, а в старой кадабре или на хабре эта проблема успешно решена, т. е. по-хорошему вообще попросту недоглядели.

Опрос можете сами сделать, только ситуацию поконкретнее опишите.
Ну а свербило — да, было очень интересно.
+3
LMaster #
Аналогичная уязвимость была на «Станции 2.0». Перехватил несколько сессий, потом сообщил администрации. Ситуация была воспринята с юмором, дыру закрыли.
Вообще, XSS — штука не такая уж и безобидная (например, XSS может превратиться в CSRF).
+4
Thomas #
У меня была тоже похожая ситуация (sql_injection)
interplus.ua/ua/forum/login/

Писал в саппорт — ноль на массу. Обидно даже, хотел помочь а они не замечают. Дыра висит уже несколько лет. Так же как и автор ничего не трогал, просто зашел и обрадовался.

id редактора — 3
0
AndryX #
Может я подзабыл о SQL инъекциях, но доступа никакого не даёт — лишь выводит ошибку «Internal Server Error».
0
Thomas #
видимо подзабыли.
Подсказываю.
… OR id=3…
Дальше сами. пароль любой.
0
AndryX #
Я так и делал. Лень уже разбираться но помню что на любой запрос, в котором одиночные кавычки вылетает ошибка и дело не продвигается. Хотя может они там написали что-то в духе «SELECT * FROM users WHERE name=$name AND pass=$pass» и кавычки я вообще зря ставил.
0
AndryX #
Понял в чём проблемы были, пытался закомментировать остаток строки через два минуса и оно не работало.
+1
Aldekein #
panas, Nataliya, ага.

Надо бы свои старые проекты проверить — чем черт не шутит…
+2
dimonline #
Ну, про AVP ты все-таки загнул. Он, конечно, крут, но всё-таки не настолько, чтобы написать тысячи постов.

Помню еще историю с тем, как кто-то накручивал НЕ себе карму, вешая «картинки» с адресами голосования.
0
aLexusPro #
Возможно сотни, но я точно помню, что цифры меня тогда поразили. Хоть они и были в общем доступе.
+1
lostinfuture #
кадабра очень даже популярный ресурс
–2
razonar #
Смотра популярный, или Драйв2 :)
0
lostinfuture #
Смотра:D нам такое не по карману:-)а Драйв2 да, хорош
0
crx #
расскажите про них
0
razonar #
Автокадабра. Хэх. Хороший был сайт. aLexusPro я крослинк поставил на кадабре на этот пост.
0
aLexusPro #
Ты только там скажи, чтобы всю карму мне сыпали :-)
0
razonar #
Карму да :))))
Ну хочешь сам опубликуй, я удалю пост.
0
aLexusPro #
Не вижу разницы.
+5
autorodik #
ну почему был, и сейчас довольно неплохие материалы появляются.
0
razonar #
Родик это же ты? Раньше было намного лучше. А сейчас мало осталось адекватных людей.
+1
autorodik #
ну конечно, а кто же… :)
+3
Zyava #
Сейчас ему запорожец салатовый и припомнят :)
+1
Kamikaze #
Знакомые все лица :)
0
tmr #
Точно помню, еще год назад на кадабре уже была какая-то муть с PHPSESSID, кажется тогда решили что это параноя и трудно реализуемо. И да — всем привет ;)
+44
pepelsbey #
Надо было развить ситуацию до состояния «доступ по ssh» и самому поправить багу.
Вот это была бы история, а то через саппорт несолидно :)
+5
aLexusPro #
А заодно надо было зачислить себя в штат и торжественно прибыть за зарплатой :)
+6
oleg40a #
кто считает, что в хорошо упакованном на деньги лоха-инвестора офисе модного стартапа кому-то интересно читать обращения в саппорт, вместо того, чтобы продуктивно обсуждать гениальные идеи будущего, опустошать кофе-машину, играть в пинг-понг или плейстейшен или креативно самовыражаться — поднимите руки
0
AirLight #
значит, так и должно быть, победитель всегда прав
+17
AirLight #
убила фраза: «А главное — я ж не хацкер, но даже я провернул всё это без труда!»

и кто ты после этого? балерина?
+5
aLexusPro #
Принято.
+6
AirLight #
извините, если слишком жестко, но я просто обязан был вернуть вас на землю; Кевин Митник тоже, наверняка, думал, что он просто балуется
+1
beloks #
Скорее, балерон!
–2
dulepov #
То, что сообщили о дыре администрации — это хорошо. То, что начали атаковать ни в чём не повинных пользователей — плохо. Должно быть какое–то чувство ответственности :)

Большие конторы часто не могут заделать дыру быстро. Дайте им время. Совершенно не зачем сразу по–детски идти и всё ломать. Вы уже помогли, сообщив о проблеме. Так потерпите ещё некоторое время. Если хочется славы, отпишите в своём блоге, когда дырка будет закрыта. Но подставлять других пользователей — это как–то некрасиво.
0
silverwind #
Он то мог бы и дать время, как мне кажется.
Но не факт что он один бы до этого додумался с неизвестно какими последствиями…
+1
dulepov #
Обычно так и делают: сообщают вендору, ждут исправления, а потом уже публично объявляют. Это — хороший способ заработать себе репутацию специалиста по безопасности. Так можно войти в интересный бизнес. Намного лучше со всех точек зрения.
+5
Zebr #
Большие конторы — как динозавры. Пока по шарам лопатой не заедешь, не реагируют. А уязвимость действительно критическая и кто-нибудь другой может оказаться не таким «добрым». Надо тормозить сайт, отключать уязвимый функционал и чинить.
+4
dulepov #
Могу сказать, как это происходит в больших конторах :)

Приходит суппорту. Суппорт начинает думать: проверять или нет (кому охота время тратить? Не своё же. а дядино). В конце концов пишет баг репорт средней важности, как неподтверждённый. Разработчик на следующий день это видит, но ему тоже шевелиться лень. Время идёт. В конце концов чей–то экаунт хакают. Если это уважаемый пользователь, тогда его вопли могут и услышать. Босс вызовет программера ещё через пару суток и ласт задачу за неделю решить проблему. Програмер за пару нель вставит пару htmlspecialchars в код. Это уйдёт на проверку в QA на неделю. Когда те дадут добро, сайт пойдёт на апдейт. В целом время реакции — месяц. А если это — банк или госучереждение, то ещё больше…

Фриленсерам и маленьким фирмам проще: раз и обновил. Там нет таких денег, а если не будешь оперативным — проиграешь.

Вывод: лучшее время реакции — у маленьких фирм, где хозяин всех гоняет конкретно.
+1
TuKTeeK #
Поэтому да — лучше сразу по шарам лопатой, все повайпать, везде напакостить. Авось в следующий раз быстрее реагировать будут.

Еще в сенятбре прошлого года на одном из проектов здесь отрекламированных нашли подобную багу с исполнением js и прочими фичами. В феврале об этой баге узнал я и еще чертова гибель человек. Вот после этого ее пофиксили за 3 дня, до этого 4 месяца лень было.
0
dulepov #
К сожалению, не будут. Эта кухня так не работает, даже если это ведёт к финансовым потерям :(
+2
Piston #
Есть у кого инвайт на Кадабру?
+5
silverwind #
Да закрыли уже ту уязвимость, закрыли! Год уже почти прошел, успокойтесь ;-))
+1
Piston #
в плену хабрааффэкта))
0
TuKTeeK #
Кстати еще не так давно инвайтов не было, опять же подтянулось несколько человек которые все испортили, вот теперь там инвайты есть. А по-скольку механика там почти как на хабре, логично было бы инвайты еще очень давно ввести. Хотя да, аудитория там в разы меньше.
0
aLexusPro #
Механика там была как на хабре, а сейчас там фактически анархия. Плюсики только выводят пост на главную или скрывают комментарий. Кармы нет, блогов нет, саморегулироваться стало нечем, вот и пришлось ввести регистрацию, как я понимаю.
0
autorodik #
почту бросьте в личку, я дам вам инвайт
+1
p777 #
Пару дней назад написал сервис, который проверяет наличие XSS уязвимостей на сайте. Сейчас тестирую на известных сайтах. О найшенных дырах сообщаю разработчикам. Чаще всего мои письма просто игнорируют, очень редко отвечают «спасибо». Чуть более часто получаю что-то вроде этого
If you can't be more specific, we can't be bothered to care. Your email sounds suspiciously like unsolicited commercial email (spam) and has been reported to google as such. Have fun peddling your scareware someplace else :)

Вот так у них (да и у нас) относятся к безопасности…
+1
sst239 #
я уже почти не читал кадабру тогда. Это когда у блондинко рейтинг стал расти до небес, или я что-то путаю? :)

а вообще, старая кадабра — с Блондинко и Петровичсем — лучше была :)
0
batal #
Пользуясь случаем передаю привет с лфс.ру :)
0
aLexusPro #
Тесновато в этом мире :-)
+2
Infthi #
а я вот как-то нашел xss на башорге. только после этого ступил и вместо написания админам написал в жж-комьюнити. закрыли таки за полчаса.
+3
aLexusPro #
Еще сутки назад я думал, что получить +249 может разве что Бумбурум, да и тому надо постараться. После публикации долго сидел на стреме и ждал, что если карма упадет на -3 или пост до -5, то закрою всё это.

А сейчас просто поражен откликом.
Всем спасибо!
0
Zyava #
Уже 265 :), Бумбурум далеко позади.
0
bliashechka #
А что самое клевое — 3х людей, нашедших, баг на хабре просто забанили и еще сказали, что при встрече набьют лицо. Вот такие создатели. Я тут понимаю Йована.
0
glazs #
Я около тысячи лет назад писал в поддержку хабра.
Несколько дней назад косяк был, если пока читаешь топик период голосования истекает, при нажатии на стрелочки/прочерк вылазит сообщение об ошибке голосования. А чтобы узнать, чисто из любопытства, сколько за топик наголосовано, нужно страницу перезагружать. Мелочь, а не приятно.
Еще был косяк, в результатах поиска были стрелочки голосования, но они не голосовались. Тоже долго не фиксили, сказали, что их вообще не должно быть там, уберут мол. Сейчас проверил — они работают.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.