SMS-центр под контролем

Master-lame-master

Хакер, номер #076, стр. 076-044-1

Тайна внутренностей clickatell.com и взлом системы

Солнечным майским днем я по обыкновению купил журнал «Хакер». В этом номере меня ждала интересная статья от Хинта про сервис clickatell.com. Ты наверняка наслышан про этот ресурс и, возможно, даже там зарегистрирован. Однако десяти халявных кредитов хватает лишь на пару-тройку хороших приколов. Быстро потратив этот щедрый презент, мне захотелось взломать несчастную контору и сделать себе анлимитный аккаунт.

Как только у меня закончились халявные SMS, я поспешил зарегистрироваться еще раз. Но хитрые американцы предусмотрели этот шаг. Они запретили регистрацию двух аккаунтов на один мобильный номер. Я просек фишку и вбил номер моего отца. Это прокатило, но следующие десять кредитов закончились еще быстрее :(. Тогда я решил попробовать провести атаку на сервис clickatell.com в надежде на то, что американские админы окажутся не слишком крутыми парнями.

Созрела мысль

В первую очередь у меня созрела мысль, что на сервисе могут существовать аккаунты вида «login:login» с положительным балансом. Поэтому, набравшись терпения, я начал вбивать рандомные имена и пароли в web-форму сайта. К моему удивлению, за час вбива я подобрал около тридцати аккаунтов, среди которых добрая половина наделялась пятью, а то и десятью нетронутыми кредитами.

Мысль о безлимитном доступе не покидала меня ни на секунду. Я понимал, что сбрутать подобный доступ невозможно, и поэтому решил послоняться по сайту в поисках бажных скриптов. Однако сколько я ни изменял параметры сценариев, видимого успеха добиться не удавалось. Тогда я подумал: «Если бага не видно на поверхности, то почему бы не поискать его в глубине?». Другими словами, я надеялся найти какую-нибудь зацепку в комплекте сценариев, доступных после успешного входа в систему.

Неспешно залогинившись под подобранным аккаунтом net с паролем net, я посмотрел в левую часть страницы. Там находилась колонка ссылок на скрипты с какими-то непонятными отчетами. Как оказалось позже, это обычная статистика по пользователю, показывающая даты и количество SMS, отосланных в отчетные дни. Я покопался в исходниках страницы и нашел длинный запрос, передающийся методом POST. Быстро изменив метод на GET, я вставил обращение к БД в отдельное адресное окно браузера. Запрос успешно выполнился, и перед моими глазами предстали две уведомительные строки. После этого я дал волю своим шаловливым ручкам и намеренно изменил параметр month, добавив в конец значения апостроф. После обновления я получил весь текст длинного запроса, а затем ошибку обработки SQL-предложения. Это было клево, поскольку теперь я знал о том, что скрипт страдает SQL-инъекцией, и, кроме того, передо мной был сам запрос. Осталось лишь правильно использовать найденный баг.

Забавы с SQL

Поскольку я не особо знаком с технологией SQL-инжектирования, мне пришлось изрядно попотеть, чтобы добиться видимых результатов взлома. Сперва я вставил в конец запроса фразу «UNION select 1» и, как обычно, получил ругань на несоответствие параметров. Затем я подобрал число выводимых полей, а также некоторые названия параметров. Работа была очень неблагодарной, зато результат взлома был потрясающим – я получил большую часть информации о пользователях портала clickatell.com. Затем я добавил в запрос условие WHERE p.email like ‘%clickatell.com%’ и получил список всех администраторов сервиса. Включая их email’ы и сложнорасшифровываемые пароли :).

Содержание  Вперед на стр. 076-044-2
ttfb: 7.1139335632324 ms