Teste de segurança - injeção

A técnica de injeção consiste em injetar uma consulta SQL ou um comando usando os campos de entrada do aplicativo.

Aplicativo da Web - Injeção

Uma injeção SQL bem-sucedida pode ler, modificar dados confidenciais do banco de dados e também excluir dados de um banco de dados. Ele também permite que o hacker execute operações administrativas no banco de dados, como desligar o DBMS / descartar bancos de dados.

Vamos entender os Agentes de Ameaça, Vetores de Ataque, Fraqueza de Segurança, Impacto Técnico e Impactos de Negócios dessa falha com a ajuda de um diagrama simples.

Exemplos

O aplicativo usa dados não confiáveis ​​na construção da seguinte chamada SQL vulnerável -

String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";

Mãos em

Step 1 - Navegue até a área SQL Injection do aplicativo conforme mostrado abaixo.

Step 2- Conforme apresentado no exercício, usamos String SQL Injection para ignorar a autenticação. Use a injeção de SQL para fazer login como o chefe ('Neville') sem usar a senha correta. Verifique se o perfil de Neville pode ser visualizado e se todas as funções estão disponíveis (incluindo Pesquisar, Criar e Excluir).

Step 3 - Vamos injetar um SQL de forma que possamos contornar a senha, enviando o parâmetro como 'a' = 'a' ou 1 = 1

Step 4 - Pós-exploração, podemos fazer o login como Neville, que é o administrador, conforme mostrado abaixo.

Prevenção de injeção de SQL

Existem várias maneiras de prevenir a injeção de SQL. Quando os desenvolvedores escrevem o código, eles devem garantir que manipulam os caracteres especiais de acordo. Existem folhas de dicas / técnicas de prevenção disponíveis no OWASP, que são definitivamente um guia para desenvolvedores.

  • Usando consultas parametrizadas
  • Escapando todas as entradas fornecidas pelo usuário
  • Habilitar privilégio mínimo para o banco de dados para os usuários finais