Não é possível despejar para arquivo apesar do mysqld sendo executado como root

0

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.

    
por user2018084 25.10.2015 / 23:39

1 resposta

4

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.

    
por 25.10.2015 / 23:45