Я пытаюсь найти способ объединить запрос выбора и обновление с той же инструкцией на сервере MySQL. Это может звучать как повторяющийся вопрос, но моя потребность отличается от моих предшественников.SELECT и UPDATE строки в запросе?
Я действительно ищу одну инструкцию SQL, поскольку я не могу использовать транзакции или разделить их на две части. Цель состоит в том, чтобы обойти меру безопасности, которая позволяет пропустить только один запрос выбора. Это не для чего-то незаконного, это для класса безопасности в моем университете, цель состоит в том, чтобы обойти адаптированную систему, которая была специально сделана уязвимой для SQL-инъекции. Я могу выполнить инъекции и сделать любой выбор, логин с помощью инъекций и т. Д., Но эта часть с обновлением осталась как вызов.
Я пробовал все, что мог, и искал способ их смешивания. Я даже подумал о том, чтобы поместить оператор Update во внутренний запрос, но синтаксис был явно неправильным.
Любые мысли? Если это невозможно, предложения о том, как атаковать цель и производить обновление, более чем приветствуются.
Вот длинный выстрел, это, очевидно, неправильно, но я думал, что это может помочь понять, что я пытаюсь достичь:
SELECT *
FROM user
WHERE (name = 'admin') and exists (
UPDATE user
SET pass='test'
WHERE name='peter');-- OR email = 'admin') AND pass = ’t’..
Цель:
$sel1 = mysql_query ("SELECT ID, name, locale, lastlogin, gender,
FROM USERS_TABLE
WHERE (name = ’$user’ OR email = ’$user’) AND pass = ’$pass’");
Обновление: я принял ответ, который был ближе к 'невозможно'. Но дальнейший поиск по этому вопросу привел к выводу, что это больше связано с API, используемым для соединителя, а также с функцией безопасности СУБД, на самом деле это связано с СУБД и приемлемыми применениями и синтаксисом.
На вопрос о способе вложения инструкции UPDATE в SELECT я обнаружил, что это невозможно - на всякий случай, насколько я знаю.
Об атаке, возможно использование стековых операторов, когда программист использует API, что позволяет такую вещь, которая редко, но существует. В заключение, все это, похоже, нужно было выполнить.
вам нужно включить ваши запросы, если вы хотите какую-либо помощь вообще –
Я больше походил на поиск синтаксиса ..но я приведу пример здесь через секунду, это может помочь .. – Victor
хорошо, вы можете использовать оператор select как источник значений для оператора обновления в общих чертах. –