sql注入可以在一个中断的查询上执行吗?

4jb9z9bj  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(317)

是否可以执行sql注入来查找原始查询中不存在表的mysql数据库的数据?
例如,在php中考虑以下查询: mysqli_multi_query("INSERT INTO users (id, email_address) VALUES (NULL, '$email');"); 如果table users 不存在,还能注射吗?我看到的主要问题是,如果我尝试注入以下内容,整个查询操作将抛出错误: '); SHOW TABLES; -- 这对我的教育比任何实际用途都重要。有什么想法吗?

50pmv0ei

50pmv0ei1#

即使表确实存在,也不会进行sql注入。 mysql_query() 不执行多个查询,因此 ; 启动第二个查询将不起作用。大多数其他mysql API都是类似的——您必须使用 mysqli_multi_query() 能够在一次调用中执行多个查询。
但是如果第一个查询由于某种原因失败,则不会执行以下任何查询。所以在你的例子中,如果没有 user 表,不能注入。
不过,这不是很有趣。sql注入通常是对正常工作的查询执行的,除了不能正确防止注入之外。因此,不太可能在访问不存在的表的查询中进行注入。

相关问题