É possível explorar uma vulnerabilidade de injeção de SQL com permissão somente de seleção, se eu conhecesse as credenciais de administrador?

É possível explorar uma vulnerabilidade de injeção de SQL com permissão somente de seleção, se eu conhecesse as credenciais de administrador?

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 IMPERSONATEpermissõ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.

informação relacionada