是否可以通过SQL注入从MySQL中的INSERT / SELECT语句启动UPDATE / DELETE语句?

时间:2010-03-11 08:13:56

标签: mysql sql-injection

让我们采取以下易受攻击的查询($ 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服务器版本对应的手册,以便在'UPDATE ...

附近使用正确的语法

没有使用存储过程的其他任何可能性?

编辑:当然也不使用多个查询

2 个答案:

答案 0 :(得分:4)

取决于驱动程序,这可能会通过:

SELECT * FROM table WHERE id = id; UPDATE table ...

答案 1 :(得分:1)