Как взломать сайт MTC Ukraine, не будучи хакером
Зайдите на сайт MTC WiFi и нажмите "Покриття Wi-Fi-мережi МТС". На данный момент это работает для украинской версии сайта... Если же зайти на русскую версию, то там вообще все линки слева ведут на сайт конкурента ;)
Злобные хакеры, используя тонкую социальную инженерию и дырки в TCP/IP протоколе, ломанули сайт монстра мобильной связи Украины? Нет! Всё проще, тупые программеры и админы сайта wifi.mts.com.ua сами пригласили юных хакеров в гости. Буквально заставили их посмотреть исходники сайта, скачать базу данных, сделать дефейс страничек.
Зачем же программисты сделали это? Потому что они тупые. Потому что хранить пароли в открытом виде в DB это как то неправильно совсем. Почему это неправильно пацаны поймут дня через два, когда из 19 тысяч зарегистрированных на сайте юзеров, процентов 30 лишаться доступа к своим email. И своруют мыло не потому что хакеры злые, а потому что юзеры тоже тупые. Они используют один пароль и на почту свою и для регистрации на говносервисах типа wifi.mts.com.ua. Именно потому что юзеры тупые а хакеры умные, хороший программист и не хранит пароли в DB в открытом виде. И спит спокойно по ночам.
Но вернемся к деталям "взлома". До сих пор на страничке http://wifi.mts.com.ua/ua/coverage/ висит уникальное по своей уникальности сообщение об ошибке:
select id,world price from net Table 'ibill.net' doesn't exist /home/wifimts/domains/wifi.mts.com.ua/public_html/auto.p(178:11)
Добрые разработчики сообщают о всех проблемах в работе скриптов, со всеми подробностями.
Им скрывать нечего. Они заботливо положили исходники проекта в директорию доступную по HTTP,
и "забыли" настроить Apache на запрет выдачи файлов типа "auto.p".
Я уж молчу о HTTP статусе который имеет страничка с ошибкой- "Status: 500 OK".
Это просто гениально, уж не знаю лебедевский парсер это делает или сами программеры так умны.
Но ответ сервера вида "у нас тут ошибка (HTTP code >= 500), но всё хорошо (OK)"
наводит на интересные мысли о психическом здоровье того кто это сделал.
На всякий случай, правильный заголовок выглядит так "Status: 500 Internal Server Error".
Как уже наверное понятно из предыдущего абзаца, по линку http://wifi.mts.com.ua/auto.p был доступен исходный код, написанный на Парсере Лебедева. В этом файле делались инклуды кучи других файлов проекта, есно это всё тоже было доступно по HTTP. Часов 5, после написания письма в сапорт, это всё было доступно. Начали шевелиться только когда на одном закрытом ресурсе, выложили описание проблемы, и народ начал качать исходники, дампить базу данных и устраивать мелкие дефейсы.
Итог всего этого такой, я лично в жизни не понесу деньги в MTC. Я видел структуру их DB, я в шоке от ламеризма разработчиков. Если они планируют хранить мои личные данные в базе данных, доступной из внешнего мира, с plain text паролями и возможностью SQL инекций в коде проекта, то нафиг надо такие "услуги".
P.S. Очень любопытно выглядит такой вот код в файле "auto.p":
^mail:send[ $.from[KIEVSTAR FEEDBACK<feedback@wifi.kyivstar.net>]
Даже не знаю что думать по поводу упоминания конкурента в таком контексте ;) Мысли самые разные, от "код тупо пизжен бывшими работниками киевстара" до "не такие уж MTC и Киевстар конкуренты, как Антимонопольному Комитету Украины кажется".