是否可以执行sql注入来查找原始查询中不存在表的mysql数据库的数据?
例如,在php中考虑以下查询: mysqli_multi_query("INSERT INTO users (id, email_address) VALUES (NULL, '$email');");
如果table users
不存在,还能注射吗?我看到的主要问题是,如果我尝试注入以下内容,整个查询操作将抛出错误: '); SHOW TABLES; --
这对我的教育比任何实际用途都重要。有什么想法吗?
是否可以执行sql注入来查找原始查询中不存在表的mysql数据库的数据?
例如,在php中考虑以下查询: mysqli_multi_query("INSERT INTO users (id, email_address) VALUES (NULL, '$email');");
如果table users
不存在,还能注射吗?我看到的主要问题是,如果我尝试注入以下内容,整个查询操作将抛出错误: '); SHOW TABLES; --
这对我的教育比任何实际用途都重要。有什么想法吗?
1条答案
按热度按时间50pmv0ei1#
即使表确实存在,也不会进行sql注入。
mysql_query()
不执行多个查询,因此;
启动第二个查询将不起作用。大多数其他mysql API都是类似的——您必须使用mysqli_multi_query()
能够在一次调用中执行多个查询。但是如果第一个查询由于某种原因失败,则不会执行以下任何查询。所以在你的例子中,如果没有
user
表,不能注入。不过,这不是很有趣。sql注入通常是对正常工作的查询执行的,除了不能正确防止注入之外。因此,不太可能在访问不存在的表的查询中进行注入。