是否可以通过 SQL 注入从 MySQL 中的 INSERT/SELECT 语句启动 UPDATE/DELETE 语句?
让我们采用以下易受攻击的查询($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 ...”附近使用的正确语法。
是否有其他不使用存储过程的可能性?
编辑:当然也不使用多个查询...
Let's take the following vulnerable query ($id not being escaped):
SELECT * FROM table WHERE id = $id
Would it be possible in MySQL 5.x to modify some data through an UPDATE statement which would appear inside the hacked SELECT statement?
I thought about something using benchmark() function:
SELECT * FROM table WHERE id = id OR benchmark(1, (UPDATE ...))
But it doesn't seem to work:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE ...
Any other possibilities not using stored procedure?
Edit: and nor using multiple queries of course...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据驱动程序的不同,这可能会通过:
Depending on the driver this may pass:
多个查询。
Multiple queries.