
Um amigo apontou uma vulnerabilidade de injeção de SQL em um aplicativo com o qual trabalho.
Este parâmetro de pesquisa:
'; exec xp_cmdshell 'dir'; --
Retornou a mensagem:
The EXECUTE permission was denied on the object
'xp_cmdshell', database 'mssqlsystemresource', schema 'sys'.
Porque a pesquisa é executada a partir de uma conta que possui apenas permissões de seleção em algumas tabelas e procedimentos armazenados.
Eu queria saber, se um usuário mal-intencionado conhecesse as informações de login de uma conta de administrador do servidor sql, seria possível para ele usar as credenciais para obter acesso root à máquina por meio do shell cmd ou algum outro trabalho malicioso?
Responder1
É possível que uma injeção de SQL mude para um usuário com privilégios mais altos no servidor SQL usando exec as {credentials}
. No entanto, o usuário original que executa a consulta precisaria ter IMPERSONATE
permissões para o usuário para o qual está tentando mudar. Esta não é uma configuração padrão, você teria que adicioná-la (seria um tanto estranho adicioná-la também).
Responder2
Realmente não importa se é possível ou não, você tem um problema legítimo aqui que deveria tentar resolver. Este comando nem deveria ter sido postado de volta no servidor.