Возможно ли с помощью SQL-инъекции запустить оператор UPDATE / DELETE из оператора INSERT / SELECT в MySQL? - PullRequest
0 голосов
/ 11 марта 2010

Давайте возьмем следующий уязвимый запрос ($ id не экранируется):

SELECT * FROM table WHERE id = $id

Возможно ли в MySQL 5.x изменить некоторые данные с помощью оператора UPDATE , который появится внутри взломанного оператора SELECT?

Я думал о чем-то, используя функцию benchmark ():

SELECT * FROM table WHERE id = id OR benchmark(1, (UPDATE ...))

Но, похоже, это не работает:

ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с 'ОБНОВЛЕНИЕ ...

Есть ли другие возможности, не использующие хранимую процедуру?

Редактировать: и не использовать несколько запросов конечно ...

Ответы [ 2 ]

4 голосов
/ 11 марта 2010

В зависимости от драйвера это может пройти:

SELECT * FROM table WHERE id = id; UPDATE table ...
1 голос
/ 11 марта 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...