Você está usando o usuário MYSQL raiz que não tem as permissões do usuário do sistema raiz .
Tente atribuir as permissões de gravação do usuário "mysql" ao arquivo.
TL; DR
Eu não entendo como mysql
em execução como root@localhost
não poderia gravar em /usr/lib/
? Escrevendo um arquivo, há uma etapa comum na injeção de SQL para root
shell. Detalhes abaixo.
Neste desafio que estou fazendo, consegui obter acesso de administrador a um painel do wordpress. A partir daí eu posso editar arquivos php, permitindo que eu execute consultas no banco de dados no meu tempo livre.
Meu primeiro passo foi verificar qual usuário estava executando o servidor mysql:
$results = $wpdb->get_results( 'select system_user() ', OBJECT );
var_dump($results);
Isso mostrou que mysql
está sendo executado como root@localhost
. Na minha opinião, root
deve ter todos direitos no sistema. Confirmei que tinha FILE
permissões:
... "'root'@'localhost'" ["privilege_type"]=> string(4) "FILE" ["is_grantable"]=> string(3) "YES" }
Só para ter certeza de que tentei gravar um arquivo em /tmp/
:
select "hello world" into outfile "/tmp/test"
Funcionou. Agora preciso de um shell root
no sistema, portanto Eu continuei seguindo esta metodologia aqui que envolve escrever um arquivo para /usr/lib/
:
select "hello world" into dumpfile "/usr/lib/test"
Mas estou recebendo um erro relacionado à permissão:
[Can't create/write to file '/usr/lib/raptor_udf2.so' (Errcode: 13)]
Usando um shell da Web executado como um usuário de baixo privilégio, verifiquei os direitos em /usr/lib/
:
drwxr-xr-x 173 root root 53248 Sep 29 2011 lib
Nada interessante aqui, root
deve ser capaz de escrever.