TL; DR

Я не понимаю, как mysql работающему от имени root@localhost , не позволил бы писать в /usr/lib/? Написание файла - это обычный шаг от перехода от SQL к root оболочке. Подробности ниже.

В этом задании, которое я делаю, мне удалось получить доступ администратора к панели WordPress. Оттуда я могу редактировать php файлы, позволяя мне выполнять запросы к базе данных на досуге.

Моим первым шагом было проверить, какой пользователь запускает сервер MySQL:

$results = $wpdb->get_results( 'select system_user() ', OBJECT );
var_dump($results);

Это показало, что mysql работает как root@localhost . На мой взгляд, root должен иметь все права на систему. Я подтвердил, что у него были разрешения FILE :

...  "'root'@'localhost'" ["privilege_type"]=> string(4) "FILE" ["is_grantable"]=> string(3) "YES" }

Просто чтобы быть уверенным, что я попытался записать файл в /tmp/:

select "hello world" into outfile "/tmp/test"

Это сработало. Теперь мне нужна root оболочка в системе, поэтому я продолжил следовать этой методологии, которая включает в себя запись файла в /usr/lib/:

select "hello world" into dumpfile "/usr/lib/test"

Но я получаю ошибку, связанную с разрешением:

[Can't create/write to file '/usr/lib/raptor_udf2.so' (Errcode: 13)]

Используя веб-оболочку, работающую как пользователь с низкими привилегиями, я проверил права на /usr/lib/:

drwxr-xr-x 173 root root 53248 Sep 29  2011 lib

Ничего прикольного здесь, root должен уметь писать.

1 ответ1

4

Вы используете пользователя root MYSQL, у которого нет прав пользователя root.

Попробуйте дать пользователю "mysql" права на запись в файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .