TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

SQL Injection

Trabalho Escolar: SQL Injection. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  24/9/2013  •  406 Palavras (2 Páginas)  •  407 Visualizações

Página 1 de 2

Passo 2

Exemplo 1

Injecção de comandos SQL

Os ataques por injecção de comandos SQL são ataques que visam os sites web apoiando-se em bases de dados relacionais.

Neste tipo de site, os parâmetros são passados à base de dados sob a forma de um pedido SQL.Assim, se o projectista não efectuar nenhum controlo sobre os parâmetros passados no pedido SQL, é possível que um pirata altere o pedido a fim de aceder ao conjunto da base de dados, ou mesmo alterar o conteúdo.

Com efeito, certos caracteres permitem conectar vários pedidos SQL ou ignorar a sequência do pedido. Assim, inserindo este tipo de carácter no pedido, um pirata pode potencialmente executar o pedido à sua escolha.

Vejamos o seguinte pedido, esperando como parâmetro um nome de utilizador:

SELECT * FROM utilisateurs WHERE nom="$nom";

Basta que um pirata introduza um nome como “toto” OR 1=1 OR nome = " titi” para que o pedido se torne no seguinte:

SELECT * FROM utilisateurs WHERE nom="toto" OR 1=1 OR nom ="titi";

Assim, com o pedido acima, a cláusula WHERE sempre é realizada, que significa que devolverá os registos que correspondem a todos os utilizadores.

Exemplo 2

O ataque SQL Injection

Para ilustrar o conceito de SQL Injection, vamos considerar o mesmo exemplo

anterior, mas dessa vez um atacante tentará acessar o sistema como usuário jose e

sem saber a verdadeira senha deste usuário.

Conforme fizemos no exemplo anterior, substituindo os valores de "login" por jose e

"senha" pela string xxxx' OR TRUE -- , desta forma, temos o seguinte comando SQL:

O servidor vai avaliar o comando SQL da seguinte forma:

Essa consulta vai retornar todas as linhas da tabela usuarios. Assim, como o número

de resultados da consulta é maior que zero (ver "LINHA IMPORTANTE"),

o atacante conseguirá efetuar o login como jose.

Isto foi possível pois o valor de entrada informado nos campos "login" e "senha" não

receberam o tratamento devido. Diversos outros tipos de ataque via SQL Injection são

possíveis, como retornar dados de outros usuários, listar tabelas que um usuário não

tem acesso, apagar informações de uma tabela, inserir informações em uma tabela,

dentre vários outros.

SELECT * FROM usuarios WHERE login = 'jose' AND senha = 'xxxx' OR

TRUE

...

Baixar como (para membros premium)  txt (2.6 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com