Funcionamento do SQL Injection ou Injeção de SQL

Adriano Martins Antonio

Adriano Martins Antonio

em 10 de abril de 2020

Fique ligado

​Entre para nossa lista e receba conteúdos exclusivos e com prioridade

Funcionamento do SQL Injection ou Injeção de SQL  

Você sabe o que é SQL Injection ou Injeção de SQL? Bem, por definição, esse é um termo que indica um tipo de ameaça que usa falhas existentes em sistemas, para interagir com o banco de dados dos mesmos, através de comandos SQL.

  • SQL Injection ou Injeção de SQL- Pra Que Serve?

Vivemos em um cenário onde temos diversas informações armazenadas em algum banco de dados. Desse modo, quando aplicações que são acessadas pela internet usam esses bancos de dados, elas se tornam alvo de ataques do tipo SQL Injection.

Assim, esse tipo de ataque serve para alterar e manipular informações do banco, comprometendo à integridade dos dados armazenados e, consequentemente, causando um grande transtorno.

A PMG Academy preparou um curso gratuito para você aprender os conceitos básicos sobre Secure Programming, faça agora mesmo: Curso Online Secure Programming Overview.

  • Como Funciona

Ao acessar uma aplicação via web, caso o sistema apresente falhas de segurança, o intruso poderá acessar formulários do site e passar instruções SQL, através do campo destinado para o usuário digitar informações.

Com isso, o invasor consegue alterar diversos dados na aplicação, sem possuir o devido acesso ou autorização. Isso se trata de um ataque que pode causar muitos danos ao banco, mas que pode ser evitado com o uso de boas práticas de programação, que possibilitam otimizar o processo de segurança da informação.

As boas práticas podem ser implementadas no próprio servidor de banco de dados, como também podem ser implementadas dentro do código fonte, independente da linguagem de programação utilizada.

Para entender melhor o funcionamento de um ataque com SQL Injection, vamos ver alguns exemplos, para esclarecer melhor a questão.

Obtenha uma visão geral sobre o que faz um Hacker Ético neste curso gratuito: Curso Online Ethical Hacking Overview.

  • Exemplos:

Com objetivo de exemplificar o funcionamento do SQL Injection, vamos analisar a situação apresentada a seguir.

Embaixo temos uma tela de Login, então considere que a autenticação desta tela é validada com a seguinte instrução SQL:

SELECT * FROM tb_usuarios WHERE user = ‘campo_usuario’ AND pass = ‘campo_senha’

Esta consulta busca no banco de dados um usuário que contenha as respectivas informações digitadas pelo usuário.

login limpo SQL Injection

Neste caso, a consulta buscaria no banco o usuário com nome de acesso ‘Ana’ e ‘senha ‘123456’.

No entanto, imagine outra situação em que  a pessoa mal intencionada deseja verificar a vulnerabilidade da aplicação. Se esta pessoa digitar uma informação, como exemplificado na tela a seguir, ela obterá um acesso indevido, podendo prosseguir com o seu ataque:

Login sujo SQL Injection

Neste caso, teríamos uma consulta da seguinte forma:

SELECT * FROM tb_usuarios WHERE user = ‘teste’ AND pass = ‘ ‘ or ‘1’ = ‘1’

O comando ‘ ‘ or ‘1’ = ‘1’ faz com que o usuário e a senha informados sejam sempre verdadeiros, permitindo assim o acesso indevido ao sistema.

Então, para evitar este tipo de ataque, na linguagem de programação deve ser implementando funções que validem os dados de entrada, a fim de impedir a execução de comandos indevidos.

Exemplo Básico de Um Código PHP Para Tratar a Execução de Querys e Evitar o SQL Injection:

? php

$usuario = $_POST[‘user’];

$senha = $_POST[‘pass’];

$user_escape =addslashes($usuario);

$pass_escape = addslashes($senha);

$query_string = “SELECT * FROM tb_usuarios WHERE user = ‘{$user_escape}’ AND senha = ‘{$pass_escape}'”;

?>

A função addslashes() adicionará uma barra invertida antes de cada aspa simples e aspa dupla encontrada. Com esse tratamento, a query resultante seria:

SELECT * FROM usuarios WHERE codigo = ” AND senha = ‘\’ or 1=\’1′

Assim se evita que o invasor consiga o acesso indevido. Uma outra dica importante é evitar exibir mensagens de erro em um servidor de aplicação que esteja em produção. Pois nessas mensagens e alertas podem ser exibidos caminhos de diretórios de arquivos, ou outras informações importantes sobre o esquema do banco de dados, comprometendo a segurança da aplicação.

Leia também:  Carreiras e Certificações de Segurança da Informação.

Compartilhar no facebook
Facebook
Compartilhar no google
Google+
Compartilhar no twitter
Twitter
Compartilhar no linkedin
LinkedIn

Artigos Relacionados

Manifesto ágil
Artigos
Henrique Mata

O Manifesto Ágil!

O Manifesto Ágil! Lembra que falamos sobre o movimento da agilidade no post anterior? Então,

Leia Mais »

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

×

Você voltou! 😊 Expirado!
00 Days
00 Hrs
00 Mins
00 Secs
Aproveite agora o desconto de 10%! Essa é a sua última chance! Resgatar Agora!

×

Olá Visitante! 😊 Você têm: Expirado!
00 Days
00 Hrs
00 Mins
00 Secs
para aproveitar o desconto de 15% (apenas nos cursos) Resgatar Agora!

@

Não ativo recentemente
X
X
X