O que é SQL Truncation Attack?
O que é SQL Injection?
Por que a injeção de SQL é perigosa?
Como o ataque de truncamento de SQL é explorado
O que causa a injeção de SQL?
Reduza o ataque de truncamento de SQL
O que é SQL Injection?
A injeção de SQL, também conhecida como SQLI, é um vetor de ataque comum que usa código SQL malicioso para manipulação de banco de dados de back-end para acessar informações que não devem ser exibidas. Essas informações podem incluir qualquer número de itens, incluindo dados confidenciais da empresa, listas de usuários ou detalhes particulares de clientes.
O que causa uma injeção de SQL?
Aplicativos desatualizados/não lançados
Aproveitar software ou recursos desatualizados ou sem suporte apresenta vulnerabilidades que não podem ser corrigidas ou detectadas tão rapidamente quanto o software moderno. A execução de versões corrigidas e modernas do software é essencial para evitar vulnerabilidades, incluindo injeção de SQL.
Por que os ataques de injeção de SQL são perigosos?
Os ataques de injeção de SQL representam uma séria ameaça à segurança das organizações. Um ataque de injeção de SQL bem-sucedido pode resultar na exclusão, perda ou roubo de dados confidenciais; sites desfigurados; acesso não autorizado a sistemas ou contas e, finalmente, comprometendo máquinas individuais ou redes inteiras.
O que é SQL Truncation Attack?
SQL Truncation Attack A vulnerabilidade, que apareceu pela primeira vez em 2008 com o código CVE-2008-4106, geralmente é causada por configurações incorretas nas configurações padrão dos bancos de dados MySQL. Normalmente, quando o comprimento máximo de caracteres definido para uma coluna de entrada em bancos de dados é excedido, essa entrada é truncada para o valor máximo de caracteres definido para a coluna. No entanto, quando essa entrada é recebida por um aplicativo da web que não possui o mesmo limite de caracteres do banco de dados, esse valor máximo pode ser excedido por alguns métodos.
Como o ataque de truncamento SQL é explorado
Por exemplo, digamos que o comprimento máximo de caracteres a serem inseridos no campo Nome do usuário em um banco de dados seja de 15 caracteres. Normalmente, os espaços em branco no final de uma entrada a ser salva em um banco de dados são ignorados e essa entrada sem espaços é salva no banco de dados. Em outras palavras, uma entrada exampleuser e exampleuser________ (os caracteres _ representam o caractere de espaço) representam o mesmo valor de string no banco de dados e não serão aceitos como um novo usuário pelo banco de dados. Se inserirmos o valor exampleuser____x para o campo User Name, excederemos o número máximo de caracteres especificados, 15 caracteres, e o caractere x será excluído na entrada inserida e o limite máximo de caracteres dessa entrada é 15'. e será reduzido para . Assim, como não há configuração de Chave Primária nos modelos de banco de dados relacional no sistema que simplesmente define um grupo de dados como único, poderemos acessar a conta/informação de qualquer usuário que quisermos no sistema aproveitando esta vulnerabilidade. Se houvesse uma configuração de Chave Primária, não poderíamos tirar proveito dessa vulnerabilidade porque haveria uma Chave Primária representando o grupo de dados que queremos alcançar e não podemos manipulá-la.