:). Если тебе потребуется внести нехороший символ в одну из переменных, передаваемых скрипту из wml-страницы, нужно будет всего лишь немного осмотреться и действовать по аналогии с html. А вообще, прибегать к просмотру чистого wml приходится крайне редко — все хакерские действия совершаются в строке URL-браузера. Давай определимся, что мы сможем поиметь от взлома wap-сайта? Бесплатные мелодии и картинки? Это вряд ли, ведь они и так выложены бесплатно. Халявный доступ к платным сервисам и онлайн-играм? Это уже лучше — некоторые ресурсы их действительно предоставляют. Но самую большую выгоду можно получить от продажи исходных кодов эксклюзивных скриптов, расположенных на мобильных порталах. Для экстрималов подойдет способ смены партнерских ссылок на свои :). То есть все деньги от продажи платного контента партнеров могут пойти тебе в карман. Если, конечно, админ не заметит такой подставы.
А теперь я хочу рассказать несколько поучительных историй взломов известных WAP-порталов со счастливым концом.
wap.kmx.ru - надежный конструктор
Сейчас очень модно создавать мобильные сайты, просматриваемые прямо с экрана сотового телефона. Владельцы этих сервисов-конструкторов получают огромные деньги, размещая рекламные и партнерские ссылки на сайтах своих клиентов. Одним из порталов, предоставляющих такую услугу, является wap.kmx.ru. Пользователям этого конструктора предоставлены широчайшие возможности по созданию и редактированию своих страниц. Как утверждают сами создатели kmx: «Мы - эксперты сайтостроения!». Но так ли это? 20000 пользователей сервиса действительно так считают, а я почему-то сразу не поверил и, зарегистрировав свой сайт с помощью веб-браузера Opera, начал изучать внутреннее устройство скрипта. После недолгого хождения по ссылкам мне посчастливилось наткнуться на такой интересный пункт, как «Импорт файлов через url». Эта фишка позволяет загрузить на свой сайт различный контент для мобильного телефона. Страница раздела содержала 2 поля ввода: «URL» и «Сохранить как...». Недолго думая, я вписал в URL значение ../../../../../../../../etc/passwd, а в поле «Сохранить как...» — passwd.wml. Я представил, что вполне возможно значение http:// указано для красоты, а в скрипте его наличие не проверяется. Действительно, после нехитрого злодеяния в моей папке для wml-страничек появился новый файл с содержанием /etc/passwd :). Дальше я попробовал прочитать содержимое директории с помощью этой баги. Значки ../../ и функция readfile() помогли мне выйти в корень конструктора. Продолжив изучать по очереди все *.php-скрипты, я наткнулся на параметры доступа к базе данных конструктора в файлике /home/kmx/www/rotation_reklama_25.php.
define("DBName","kmx");
define("HostName","localhost");
define("UserName","kmx");
define("Password","kmx-hosting");
Отличный пароль для такого серьезного проекта. Что удивительно, он подошел к ftp! Получив доступ к серверу, я тут же слил все файлы конструктора и базу данных к себе на жесткий диск. Вот часть дампа базы клиентов этого хостинга-конструктора:
INSERT INTO `users` VALUES (12965,'kmx','tehrana','tehrana','1561554961',0,1112326239,1112326250,'farid','nadirov','nf_m55@mail.ru',0,5242880,0,'');
INSERT INTO `users` VALUES (14642,'kmx','elkatan','yaquboqlu','7381022744',0,1113300485,1113300500,'ELDENIZ','MAMEDOV','elkatan@mail.ru',0,5242880,0,'');
INSERT INTO `users` VALUES (12961,'kmx','skykmxru','mix','2417159245',632235923,1112322498,1112325157,'pavel','Ivanov','',0,5242880,0, '');
INSERT INTO `users` VALUES (12960,'kmx','till','131313','4832612542',955559136,1112320276,1112797484,'Саша','Ященко','tillll@gala.net',0,5242880,0,'');
INSERT INTO `users` VALUES (12959,'kmx','cold-punk','Hoj','1097662073',0,1112319078,1112319089,'Il\'ya','Yavorskij','cold-punk@mail.ru',0,5242880,0,'');
Итак, я мог рулить всеми сайтами конструктора. Вообще, у меня была идея их удалить, но я не стал этого делать, так как админ kmx развернул нешуточную антихакерскую деятельность. Он проверил все свои скрипты на баги и подключил к защите сервера своих знакомых из спецслужб (как он сам говорил). Но, несмотря на это, мне с товарищами все же удалось несколько раз продать эти эксклюзивные хостерские скрипты за кругленькую сумму :).
seclub.org - вакханалия в чате
Что такое мобильный чат? Это бессонно проведенные ночи у экрана телефона, настоящая дружба и виртуальная любовь, которые всюду ходят с тобой в кармане. Самые лучшие вап-чаты обычно размещены на более или менее посещаемых порталах, одним из которых является seclub.org - клуб любителей трубок от SonyEricsson. Этот популярнейший WAP-портал с не менее популярным чатом тоже оказался подверженным взлому. Именно из-за моих приколов над пользователями админы клуба вынуждены были написать свой новый чат с нуля, а не пользоваться купленным у wap.wab.ru скриптом :).
А с чего же все началось? Как-то раз, сидя в аське, я узнал у хорошего знакомого про то, что этот чат записывает в базу данных переменную с юзерагентом ($HTTP_USER_AGENT) без каких-либо проверок. Переварив эту инфу и зная о том, что поле с правами пользователя в БД называется «level», я решил проверить чат на sql-injection. Я накатал простенький php-скрипт, увеличивающий «level» на несколько пунктов,
$fp = fsockopen("seclub.org", 80, $errno, $errstr, 30);
$out = "GET /chat/chat.php?id=41711&ps=testaz&rm=4&ref=169569 HTTP/1.1\r\n";
$out .= "Host: seclub.org\r\n";
$out .= "Connection: Close\r\n";
$out .= "User-Agent: 1',level='7\r\n\r\n";
fwrite($fp, $out);
fclose($fp);
?>
и запустил его на Денвере. После чего, зайдя в чат, увидел много новых возможностей: Админская комната, Панель управления администратором, кнопка смены заголовка комнаты и т.д. Админы раз за разом убирали мой статус, а я снова и снова проделывал этот нехитрый трюк, становясь администратором :).
Так как этот скрипт со временем стал доступен всем и каждому, ты можешь поискать его в вапе и поглумиться над тупыми администраторами. Распознать такой чат можно по специфической странице reghelp.php (в других чатах регистрация оформлена либо совсем без страницы с правилами и помощью, либо эта пага называется по-другому), на которую ты попадаешь сразу после нажатия кнопки «Регистрация» в главном меню.
wap.siemens-club.ru - кривые ручки кодеров
А теперь самое вкусненькое. Wap.Siemens-Club.Ru - вап-представительство сименс-клуба, на сегодняшний день является одним из самых посещаемых ресурсов рувапа с очень высоким доходом. На нем находятся тонны отсортированных загрузок: wav, mmf-мелодии и т.п. Резон для взлома этого портала был очень весомым - возможность шантажа и получения денег.
Разработчиком движка для вап сименс-клуба является человек с ником lastdj (его вап-сайт lastdj.net.ru), кодер довольно неплохой, но невнимательный. Практически в каждый параметр его скриптов можно было вставить кавычку для sql-инъекции (уже потом за умеренную плату админы клуба попросили меня указать их). В общем, их движок был полностью дырявым. Но самая главная бага открывалась взору, если в Опере пройти по вкладке Сервис->Быстрые настройки и нажать «Представляться как Internet explorer», а не как Opera, что стоит там по дефолту. После выполнения этой нехитрой процедуры по адресу wap.siemens-club.ru можно увидеть веб-форму для загрузки своих файлов в вап-обменник (сейчас он находится по адресу: http://wap.siemens-club.ru/?mod=mod_dmelody). Сначала я попробовал загрузить веб-шелл, содержащийся в файле test.jpg.php. Не прокатило: расширение жестко проверялось. Затем, немного подумав, переименовал файл в test.php.jpg. Скрипт спокойно проглотил мой шелл и даже любезно обрезал «.jpg», оставив просто файл test.php :) Что было дальше, думаю, не стоит объяснять. После изучения сервера, поиска всех явок, паролей и доступов я постучал в асю к одному из админов сименс-клуба и потребовал за информацию о дырке немного зеленых денег на подставной кошелек. Админ, естественно, мне не поверил и создал тестовый файл php в корне сайта, попросив меня раскрыть его содержание. Что я и сделал. Но админ снова не понял всю серьезность ситуации. Тогда я удалил из загрузок весь раздел с java-книгами :). Только после этого товарищ администратор осознал, что нужно что-то делать, перевел мне запрошенную сумму — и я рассказал ему о дырке. А потом все тихо и мирно разошлись.
Думаю, этот пример наглядно показал, почему не стоит доверять непроверенным кодерам.
wap.mypuk.ru - качаем деньги
В свое время (2003-2004 годы) wap.mypuk.ru был самым посещаемым порталом рувапа. Люди заходили на него благодаря неплохому по тем временам чату и огромному каталогу ссылок. После появления партнерских программ админ ресурса решил первым их испытать и поставил на свой сайт эти самые партнерские ссылки. Деньги полились к нему рекой, и мы с товарищами решили, что он должен поделиться :).
Наверно, всем уже приелась бага phpbb-форума в параметре highlight, но именно она нам помогла. У мурика как раз был установлен такой форум с неплохой вап-модификацией. Собственно, в вап-phpbb бага не работала, а вот в веб проходила на ура. Причем права на запись, удаление и т.д. файлов были полными. В результате залития шелла на сервер мы смогли рулить крупнейшим сайтом рувапа около двух недель. И все эти две недели на несколько часов меняли партерские ссылки контент-провайдеров playfon.ru и mediamobile.ru на свои. Это заметить было сложно, так как такая партнерская ссылка имеет следующий вид:
http://wapb2b.playfon.ru/p/chm.wml?d=232234,
где «d=232234» - ид партнера. Так мы ставили свой ид и продавали на чужом портале около 60-80 игр в день. Правда, деньги за эти игры мы так и не получили, так как, совершенно обнаглевши, стали заменять ссылки уже не на пару часов, а на весь день. В результате Мурик заметил обман и нажаловался контент-провайдеру, который заблокировал наш аккаунт и перевел все деньги обратно Мурику.
Этот взлом можно считать неудачным, но сам прецедент и идея впечатляют. Если тебе удастся взломать какой-нибудь крупный вап-портал, попробуй поднять денег именно таким способом, но сильно не наглей :).
wap.bodr.net - месть
И снова популярнейший вап-портал с тоннами загрузок. В свое время с админом бодр.нет у нас сложились очень натянутые отношения. Мы заказали вап-конструктор у знакомого кодера за неплохие деньги, затем этот же кодер продал наш конструктор и бодру. После этого началась история взаимных взломов именно через этот конструктор :).
Итак, сам скрипт у бодра расположен по адресу: wap4.ru. После регистрации пользователь попадает в стандартное меню, где можно залезть сразу же в редактирование главной страницы index.wml. Я сразу зашел в этот раздел, и в каждое из полей (Текст, URL, Картинка и т.д.) ввел символы: ' < > $, чтобы проверить, режутся ли тэги. Тэги не резались только в поле «Картинка». Это очень хорошо. Затем я открыл исходный wml-код страницы редактирования и нашел тэг анкора (аналог