总结
我不明白为什么mysql
运行 as 却root@localhost
不允许写入/usr/lib/
?在那里写入文件是从 SQL 注入到root
shell 的一个常见步骤。详情如下。
在我正在进行的这项挑战中,我设法获得了 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”用户对该文件的写权限。