尽管 mysqld 以 root 身份运行,但无法转储到文件

尽管 mysqld 以 root 身份运行,但无法转储到文件

总结

我不明白为什么mysql运行 as 却root@localhost不允许写入/usr/lib/?在那里写入文件是从 SQL 注入到rootshell 的一个常见步骤。详情如下。

在我正在进行的这项挑战中,我设法获得了 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系统上的 shell,所以我继续在这里遵循这个方法其中涉及将文件写入/usr/lib/

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

但我收到了与权限相关的错误:

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

使用以低权限用户身份运行的 Web Shell,我检查了以下权限/usr/lib/

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

这里没什么奇怪的,root应该可以写。

答案1

您正在使用根 MYSQL 用户没有权限根系统用户

尝试授予“mysql”用户对该文件的写权限。

相关内容