Я надеюсь, что это сделано для академических целей, так как я понятия не имею, почему вы хотели бы иметь это на любых производственных веб-сайтах.При этом, вероятно, это связано с тем, что AND также должно быть верным, чтобы запрос возвращал какие-либо результаты.Где, как если бы вы отправили admin'OR'1'='1
в поле имени пользователя, ваш запрос будет выглядеть так:
SELECT * FROM users WHERE username='admin'OR'1'='1' AND password='123'
Это читается как ГДЕ имя пользователя равно admin ИЛИ 1 равно 1 И пароль равно 123. Возможно, вам потребуетсявыяснить, как также обойти эту проверку, поскольку она все еще будет пытаться сопоставить поле пароля и наоборот поле имени пользователя.
Кажется странным сказать, но если вы хотите ввести что-то, возможно, это будет работать в поле имени пользователя injection' OR 1 LIMII 1#
Что могло бы сделать что-то вроде этого
SELECT * FROM users WHERE username = 'injection' OR 1 LIMIT 1#' AND password = 'pass'
По сути, вы уже вводите SQL, вы просто не делаете это таким способом, который дает желаемые результаты.Попробуйте повторить запрос и запустить его непосредственно в интерфейсе командной строки mySQL, чтобы увидеть, что это за набор результатов и является ли он правильным запросом.Возможно, поэкспериментируйте с запросом, чтобы попытаться получить желаемую инъекцию.