Injeção de SQL
Quando o site mistura o que você digita com o comando do banco, o texto vira comando.
Sites guardam dados num banco de dados e perguntam a ele usando uma linguagem chamada SQL. Um login, por exemplo, pergunta se existe alguém com aquele usuário e senha:
SELECT * FROM usuarios WHERE usuario = 'joao' AND senha = '1234'
O perigo aparece quando o site monta esse comando colando o que você digita, sem separar os dados do comando. Se você digitar uma aspa simples (') no campo de usuário, ela fecha o texto cedo, e o resto do que você escrever passa a fazer parte do comando.
Digitando ' OR '1'='1' -- no usuário, o comando vira:
SELECT * FROM usuarios WHERE usuario = '' OR '1'='1' -- ' AND senha = '...'
A aspa fecha o nome vazio, OR '1'='1' é sempre verdadeiro, e -- transforma o resto da linha em comentário, apagando a checagem da senha. O banco devolve um usuário e o login é aceito, sem senha nenhuma.
Isso é injeção de SQL. A correção é sempre a mesma: usar consultas parametrizadas, em que o valor digitado é entregue ao banco como dado puro e nunca pode virar comando.