SQLi

Ataques de computação em nuvem

No mundo da computação em nuvem, vários ataques podem ser empregados contra um alvo. Muitos deles são variações ou são os mesmos que você já viu, mas existem alguns com uma roupagem nova. Muitos dos ataques que exploraremos aqui podem ser executados contra qualquer um dos modelos de serviço em nuvem mencionados anteriormente sem qualquer variação. (mais…)

Falhas comuns de aplicações web e métodos de ataques

Vejamos alguns métodos comuns de explorar as vulnerabilidades de uma aplicação ou site hospedado em um servidor web.

Misconfiguration

É muito fácil para o administrador inexperiente, mas bem-intencionado, configurar mal ou simplesmente se perder em uma configuração, que pode ser a opção que permite um ataque.

Para evitar que a configuração incorreta se torne um problema, certifique-se de que a função do servidor está corretamente definida. Planeje e avalie a configuração para garantir que ela irá fornecer a proteção necessária. Certifique-se também de rever as melhores práticas que fornecedores como a Microsoft oferecem sobre as etapas a serem tomadas para proteger um sistema.

Outra opção é usar scanners de vulnerabilidade para verificar possíveis problemas em um site ou aplicação da Web. Os scanners de vulnerabilidade podem fornecer orientação valiosa sobre onde os esforços devem ser concentrados. (mais…)

SQL Injection (SQLi): Identificando o BD e extraindo dados com UNION

A maioria das técnicas demonstradas na primeira postagem sobre SQLi são efetivas contra todas as plataformas de banco de dados comuns e qualquer divergência podem ser ajustadas facilmente de acordo com a sintaxe. Entretanto, quando começamos a ver técnicas mais avançadas de exploração, as diferenças entre as plataformas começam a ser mais significante e você precisará ampliar seu conhecimento sobre o tipo de banco de dados que está sendo manipulado.

Você já viu como extrair a string de versão da maioria dos tipos de BD. Mesmo que você não consiga por algum motivo, normalmente é possível obter por outros métodos. Um dos mais viáveis é a forma que o BD concatena strings. Em uma consulta onde você controla a string de dados, você pode fornecer um valor particular em uma consulta e então testar diferentes métodos de concatenação para produzir uma string. Quando o mesmo resultado é obtido, você provavelmente identificou o tipo de BD que está sendo usado. Os próximos exemplos mostra como string pode ser construída para a maioria dos tipos de BD: (mais…)

SQL Injection (SQLi): Entendendo e identificando a vulnerabilidade em aplicações

Quase todas as aplicações web utilizam um banco de dados para armazenar os vários tipos de informações de que necessita para operar. Por exemplo, uma aplicação web implantado por um varejista on-line pode usar um banco de dados para armazenar as seguintes informações:

  • As contas de usuário, credenciais e informações pessoais;
  • As descrições e preços dos itens para venda;
  • Ordens de serviços/compras, extratos de conta e detalhes de pagamento;
  • Os privilégios de cada usuário dentro da aplicação.

Os meios de acesso à informação no banco de dados é Structured Query Language (SQL). SQL pode ser usado para ler, atualizar, adicionar e eliminar informações contidas no banco de dados.

SQL é uma linguagem interpretada, e aplicações web comumente constroem instruções SQL que incorporam dados fornecidos pelo usuário. Se isso for feito de maneira insegura, o aplicativo pode ser vulnerável a injeção de SQL. Este é uma das vulnerabilidades mais notórias para afetar aplicações web. Nos casos mais graves, a injeção de SQL pode permitir que um invasor anônimo ler e modificar todos os dados armazenados no banco de dados, e até mesmo assumir o controle total do servidor no qual o banco de dados está em execução. (mais…)