Prévia do material em texto
<p>Na página de autenticação de uma aplicação Web os campos Username e Password são preenchidos e passados diretamente (sem validação) para compor o comando SQL a ser executado pelo gerenciador de banco de dados. Sabendo que o usuário preencheu o campo Username com carlos e a Password com e que o comando SQL executado SELECT * FROM users WHERE name=('carlos') and password=('querty') LIMIT 0,1Qual seria o valor do campo Password para que pudéssemos acessar a conta de tom sem sua senha? or "1"=("1 or 1') or 1=('1 Respondido em 28/03/2023 11:52:34 Explicação: Desejamos que, no lugar da palavra querty, tenhamos um comando SQL que seja sempre verdadeiro para a senha (campo passord). Uma idéia seria exatamente usar') or que levaria a: SELECT * FROM users WHERE name=('carlos') and password=(") or 1=('1') LIMIT Mas esta alternativa não existe. Mas a letra (D) torna funcionamento do SQL similar ao que nos interessa: 1') or 1=('1 SELECT * FROM users WHERE name=('carlos') and password=('1') or 1=('1') LIMIT 0,1 7 Acerto: 0,0 / 1,0 Questão</p>