Месть за хвастовство: Убойный взлом totalvideogames.comОстап Бендер Искал я как-то в интернете игровые новости и заинтересовался одним форумом. Там человек по имени Крис (не Касперски) оговорился, что на его сервере есть почти готовая статья о релизе новой версии моей любимой игры. Но статья выйдет в свет только вместе с релизом! Поскольку релиз намечался не очень скоро, я не удержался и попробовал сам взглянуть на эту «секретную информацию». Чтобы проучить товарища Криса Лейтона за неумеренное хвастовство, сначала я должен был найти его сервер. Я просмотрел профайл Криса на том же форуме, но никаких ссылок на другие ресурсы там не было. «Плохо, - подумал я, - но не смертельно, поскольку есть еще такой злобный хакерский поисковик, как Google». Набрал в поиске «Крис Лейтон» и, как и рассчитывал, увидел на первой же странице вполне вероятное хранилище исходников заметки – плюс e-mail Криса, который хранился на gmail.com. Так я попал я на достаточно солидный и крупный ресурс (www.totalvideogames.com), посвященный новостям мира игр. Сайт, судя по контактам, – британский; контент полностью на английском языке. Просматривая размещенные новости, я сразу просек, что Крис – один из множества редакторов этого проекта (новостей там было очень много, и авторов тоже немало). Ничего подозрительного не увидев, я решил пойти спать, так как время было позднее. Но тут мне пришла в голову неплохая мысль – поставить брут на ночь на то самое мыло, которое я увидел в Гугле. Брут решил делать по словарю английских слов, так как сайт британский. Мало ли, вдруг тут будет тот распространенный случай, что у юзера один и тот же пароль как на е-мейле, так и на всех сайтах, где он зарегистрирован. Пусть ночь пройдет не впустую, а с пользой, – подумал я и пошел спать. Утром я познакомился с жертвойЯ торопливо подбежал к компьютеру и включил монитор. К сожалению, меня ждало разочарование. Ночной брут ничего не дал, и я решил его остановить. Значит, не все так просто – но тем интереснее! Ладно, подумал я, придется потратить время и самому проанализировать сайт на уязвимости. Осмотревшись, я решил, что это какой-то самописный движок, мне незнакомый. Поэтому поиск багов на других ресурсах под какую-либо версию я сразу отверг. Тоска, все придется проверять самому! Оказалось, что www.totalvideogames.com – весьма популярный и массовый забугорный портал с весьма оригинальным и красивым дизайном о новинках в игровой индустрии. Количество посещений его в сутки составляет около 25-30 тысяч уников. Первая мысль, которая меня посетила, была такой: поскольку сайт очень посещаемый, а, значит, свежеобновляемый, то есть неплохие шансы, что мой друг Крис появляется там очень часто. Начать можно было бы с поиска XSS (), – уязвимости, которая позволила бы мне получить на снифер cookie администратора. Но для этого мне надо было зарегистрироваться и заставить его перейти по нужной мне заранее заготовленной ссылке. Пожалуй, оставим этот вариант на потом, подумал я. Времени он мог занять много и не давал гарантий результата, по сравнению с другими, оставшимися у меня в запасе, идеями. Битва идейПролистав пару страниц и заметив переменные в ссылке, думаю: сяду-ка я проверить этот сайт на наличие Sql-инъекций. А вдруг? Хотя если честно, не особо верил – процедура пусть и привычная, но не часто себя оправдывает. Потратив не один десяток минут на проверку, я не поверил увиденному! Бог мой, неужели здесь, на этом серьезном портале есть Sql-инъекция? Да-да, горе-кодеры что-то упустили! А ведь это весьма полезная для хакера уязвимость, лучше и быть не может! Не буду грузить тебя промежуточными вычислениями, скажу лишь, что инъект был вида: http://www.totalvideogames.com/pages/articles/index.php?article_id=67777' Я переделал запрос под себя, подбирая количество столбцов. Эх, нелегкое это дело, особенно если делать вручную – кто знает, сколько их окажется! Разумеется, существует ORDER BY и GROUP BY для более быстрого подбора, но я привык проверять все ручками (мне так больше нравится). И вот результат оправдал мои старания: 25 столбцов! В случае правильного подбора исчезнет ошибка и выведется обычая рабочая страница: http://www.totalvideogames.com/pages/articles/index.php?article_id=67777' Подобрав количество столбцов, посмотрим, какие из них отобразились на странице. Например «2». Убедившись, что «2» умеет выводить информацию, подставляем теперь вместо «2» в нашем запросе: concat_ws(char(58),username,password,email,icq). Это вывод через поле «2» с разделением двоеточием (concat_ws(char(58)) выводимых параметров (username,password,email,icq). Прежде, разумеется, не забудь убедиться, что существует таблица, именуемая именно Users, и что поля в ней именуются username, password, email и icq (а не, к примеру, membername, passwd или т.п.). Все это мне пришлось подобрать: http://www.totalvideogames.com/pages/articles/index.php?article_id=67777' Ну вот, теперь перед нами на экране ник, хеш пароля и е-мейл первого пользователя. Ну и ICQ, если есть, выведется. У этого пользователя аськи нет, поэтому она не выводится. Мне осталось расшифровать пароль, поскольку зашифрован он был, как это часто бывает, в формате md5. Сел я перебирать знакомые мне сервисы по расшифровке md5. На примете у меня их было порядка 4-5 весьма крупных. К моему удивлению, ни на каком из этих сервисов пароля не было. Ладно, тогда спросим у людей, которые постоянно их брутят – и я решил перебрать форумы хакеров в рунете. Запостив на одном из них просьбу расшифровать хеш, примерно через два часа я увидел пароль Криса. Трюк с поиском админкиНу а теперь оставалось вроде бы самое простое – найти админку, зайти в нее и посмотреть список черновых заметок моего друга Криса. Начал я искать админку. Потратив пять минут и перебрав все основные банальные варианты админок, понял, что вручную я ее, скорее всего, не подберу. Начал думать, как бы еще я мог получить какую-то информацию о содержимом сайта. И тут мне в голову пришла отличная идея, которая иногда очень даже полезна! Из своего опыта работы в интернете по развитию и продвижению сайтов я знал, что многие админы кладут в корень сайта файлик robots.txt (с настройками и указаниями для поисковых ботов, что индексировать, а что – нет, и прочими тонкостями). Грубо говоря, все директории, куда не следует заглядывать боту, без проблем можно указать в этом файле после специальных ключевых слов. Вот я и поспешил проверить, есть ли там этот файлик. Мне повезло, потому что админы этого крупного солидного проекта как раз в нем и указали адрес к админке. Добавлю, что вручную я бы и за неделю не подобрал эту входную часть ссылки (/tvgadmin). Вот как раз то, что мне нужно, подумал я. И хорошо, что не стал терять время на поиск XSS! Зачем нести затраты, если в этом нет необходимости? В админкеПопав в админку, я осмотрелся и убедился, что мои первоначальные догадки о том, что над этим проектом трудится большое количество редакторов – оказались верными. А Крис Лейтон – самый главный из них, поскольку может назначать и убирать редакторов через админку. Неподалеку я нашел раздел с черновиками, в котором находилось то, ради чего и была вся кутерьма! Что ж, уязвимость можно попытаться найти в любом популярном продукте. Сотни тестеров проверят каждый кусочек кода, но никто и ничто не гарантирует полной защищенности! Ура, товарищи! Danger!Внимание! Информация представлена исключительно с целью ознакомления! Ни автор, ни редакция за твои действия ответственности не несут! |