Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Micilini Roll

DELETE com SQL INJECTION

Recommended Posts

Pessoal sempre no host servidor online quando criamos um banco de dados ele nos da a opcao se querermos ativar o delete alter table select e bla bla bla,supondo que eu nao ativei o delete somente o select e tenha colocado no site um campo de login e senha,digamos que meu site nao esta protegido contra xss e injection quando o hacker botar um comando pra deletar a tabela ou os registros do banco de dados ele ira conseguir? Na minha intuicao eu acho que nao apesar de nunca ter feito isso,pois o delete do banco de dadls nao esta ativo! Eae pessoal?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal sempre no host servidor online quando criamos um banco de dados ele nos da a opcao se querermos ativar o delete alter table select e bla bla bla,supondo que eu nao ativei o delete somente o select e tenha colocado no site um campo de login e senha,digamos que meu site nao esta protegido contra xss e injection quando o hacker botar um comando pra deletar a tabela ou os registros do banco de dados ele ira conseguir? Na minha intuicao eu acho que nao apesar de nunca ter feito isso,pois o delete do banco de dadls nao esta ativo! Eae pessoal?

 

Não será possível fazer nada que não haja permissão. Se remover permissão de excluir tabelas, não será possível excluir tabelas. Mas, pelo menos o SELECT você precisa. Com um SELECT já dá pra pegar bastante coisa. Na tabela de usuários, por exemplo, experimente:

 

'SELECT * FROM usuarios WHERE nome = "nome_de_usuario_valido" AND senha = "senha_do_usuario";'

 

Essa é a consulta válida, que funciona, OK??

 

Agora, vamos supor que o invasor preencha o campo senha assim:

 

" OR "" = "

 

O resultado final da consulta fica:

 

'SELECT id FROM usuarios WHERE nome = "nome_de_usuario_valido" AND senha = "" OR "" = "";'

 

O que vai trazer todos os registros de usuários, permitindo um login inválido.

 

Há, ainda, outras consultas que expõem toda a estrutura do seu BD

 

SHOW DATABASES;

 

SHOW TABLES FROM nome_do_bd

 

SHOW CREATE TABLE nome_da_tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além do que o Evandro Oliveira explanou, deve-se entender que o comando DELETE é diferente do comando DROP. Se você bloquear apenas o DELETE, estará impedindo a exclusão de registros (tuplas), mas poderá, normalmente, excluir uma tabela e/ou uma database inteira.

 

O uso da PDO ajuda bastante em questões de SQL Injection, mas o feeling/experience de desenvolvedor deve ser utilizado.

 

Em questões de sistemas, a utilização de usuários restritos/privilegiados é extremamente útil, uma vez que um usuário somente para consulta irá restringir certas "khdas" e invasões em seu sistema além de otimizar certos aspectos na sua aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendo perfeitamente,no caso mais seguro seria nao ativar o delete e o drop,fazendo com que se o usuario desejar excluir algumas coisa,pra ele ira excluir mas... na verdade nao foi excluido e sim ocultado,mas o usuario nao precisa saber disto nao é mesmo...ultilizo sempre o pdo e algumas functions anti sql injection,obg pessoal!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além do que os colegas acima disseram, não é somente um delete que diz que a aplicação está vulnerável.

Com uma "simples" falha e um software chamado SQLMAP pode ser possível visualizar vários dados tais como:

- nome de banco de dados;

- nome de tabelas;

- nome de tuplas;

- conteúdo das tuplas;

 

Sendo ainda possível fazer o dump de todo o banco.

Dá uma olhada nesse link

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.