1
resposta

[Dúvida] SQL injection UNION attack --

Estou na dúvida por qual motivo quando tentei utilizar o comando: =Pets' UNION SELECT * FROM users --

Deu erro interno no ambiete de teste e quando utilizei o comando abaixo funcionou, pois eu não teria como saber o nome das duas primeiras tabelas

=Pets' UNION SELECT username, password FROM users --

1 resposta

Olá Gustavo.

Tudo bem?

Sobre o erro que você encontrou ao tentar usar o comando =Pets' UNION SELECT * FROM users --, a explicação está relacionada à estrutura das tabelas que você está tentando unir com o comando UNION. No SQL, o comando UNION é usado para combinar os resultados de duas ou mais consultas SELECT. No entanto, para que o UNION funcione corretamente, cada SELECT dentro do UNION deve ter o mesmo número de colunas na consulta, e essas colunas devem ter tipos de dados compatíveis.

No seu primeiro comando, ao usar SELECT *, você tenta selecionar todas as colunas da tabela users. Se a tabela de onde você está tentando extrair os dados inicialmente (no seu contexto, parece ser uma tabela relacionada a produtos) não tiver o mesmo número de colunas que a tabela users, isso resultará em um erro, pois o SQL não será capaz de unir os resultados de forma adequada.

No segundo comando que funcionou, =Pets' UNION SELECT username, password FROM users --, você especificou exatamente quais colunas queria selecionar (username e password). Isso provavelmente corresponde ao número e tipo de colunas que estão sendo selecionadas na consulta original que você está tentando injetar. Por exemplo, se a consulta original está selecionando duas colunas (como um título e uma descrição de produto), seu comando UNION precisa também selecionar exatamente duas colunas, o que você fez corretamente na segunda tentativa.

Portanto, o segredo aqui é garantir que o número de colunas e os tipos de dados nas colunas correspondam em todas as consultas que você está unindo com UNION. Isso explica por que a segunda abordagem foi bem-sucedida.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software