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
должен уметь писать.