Using SQL Injection to Bypass Authentication
Using SQL Injection to Bypass Authentication
Neste exemplo demonstraremos uma técnica para contornar a autenticação de uma página de login vulnerável usando injeção SQL.
Para verificar possíveis vulnerabilidades de injeção de SQL, inserimos uma aspa simples no campo "Nome" e enviamos a solicitação usando o botão "Login".
O aplicativo nos fornece uma mensagem de erro SQL.A mensagem de erro inclui a consulta SQL usada pela função de login.Podemos usar essas informações para construir um ataque de injeção para ignorar a autenticação.A primeira conta em um banco de dados geralmente é um usuário administrativo, nós pode explorar esse comportamento para efetuar login como o primeiro usuário no banco de dados.
Insira alguma sintaxe apropriada para modificar a consulta SQL na entrada "Nome". Neste exemplo usamos ' ou 1=1 -- .Isso faz com que o aplicativo execute a consulta:SELECT * FROM users WHERE username = '' OR 1= 1-- ' AND password = 'foo'Como a sequência de comentários (--) faz com que o restante da consulta seja ignorado, isso é equivalente a:SELECT * FROM users WHERE username = ' ' OR 1=1
Neste exemplo, o ataque de injeção de SQL resultou em um desvio do login e agora estamos autenticados como “admin”.