Я не уверен насчет других, но приведенное ниже верно для MySQL и MariaDB.
Вам понадобится дополнительный эксплойт для локального повышения привилегий, чтобы получить доступ к любым файлам, которых у пользователя базы данных нет доступ к. Доступный для доступа путь к файлу указан в системной переменной secure_file_priv
. Выгрузка / загрузка данных из любого другого места будет невозможна.
Кроме того, выполнение команд невозможно без подключаемого модуля UDF, который позволит вам выполнять произвольные команды. Такие вещи существуют, но не являются частью MySQL / MariaDB - это то, что системный администратор / администратор базы данных на сервере БД должен будет установить самостоятельно. Без этого вы не смогли бы получить список файлов.
Тогда есть защиты на уровне ОС:
1) Привилегии уровня POSIX Это обычные права пользователя / группы файловых систем .
2) Вторичное усиление, например SE Linux или AppArmor. Это предотвратит доступ запущенного процесса к путям, портам и другим ресурсам, которые не соответствуют контексту или пути, определенным в политике безопасности.
Короче говоря, вы не можете получить доступ / получить произвольные файлы через уровень базы данных, если только сервер не настроен (неправильно) намеренно (неправильно) так, чтобы это позволяло вам сделать это, и потребуются активные усилия для настройки MySQL или сервер MariaDB таким образом, чтобы он оставался открытым для этого.