Mmoljunior’s Weblog

Março 7, 2009

SQL Injection

Arquivado em: Artigos — mmoljunior @ 1:34 am
Tags: ,

SQL Injection é um tipo de ataque que visa a vulnerabilidade de um aplicação que possue uma entrada de dados que vai ser utilizada para fazer alguma execução no banco de dados, onde esta entrada não foi validada.

$user_name=$_POST["input_user"];
$pwd_name=$_POST["input_pwd"];
Select user_name, pwd_name FROM sys_users WHERE user_name='$user_name' AND pwd_name='$pwd_name'

No caso acima temos uma simples consulta ao banco de dados onde $user_name e $pwd_name são campos de texto de um formulário que está verificando o login e a senha de um determinado usuário. Se um atacante desejar, ele pode facilmente atacar o sistema que possue esse query para verificar o login.

Um modo simples de efetuar um ataque ao sistema para verificar a vulnerabilidade do mesmo seria passar no input_user o seguinte valor:

input_user =  jo'hn

Neste caso o correto seria passar john, mas estamos passando jo’hn para quebrar a string que forma a sql e gerar um erro no banco de dados. Esse erro imediatamente diz para o atacante que o formulário não possue validação e que ele pode fazer uma SQL Injection mais bem elaborada para fazer o que desejar com o banco de dados.

$user_name = 'OR 1=1

Esse é uma forma clássica de torna a consulta ao banco de dados válida sempre, já que 1=1 sempre vai retornar verdadeiro.
…continuação…

Referências


Sem comentários ainda »

Nenhum comentário ainda.

Feed RSS dos comentários deste post URI do TrackBack

Deixe um comentário

Blog no WordPress.com.