这是安全测试的一部分,因此没有办法“更改”查询。
基本上,我发现的是一个允许语句操作的缺陷,所以基本上是这样的:
$query = "DELETE FROM `products` WHERE `products`.`whatever` = $variable";这是PHP,据我所知,无法执行多个查询。使用这个SQL注入,我能够通过运行"0或1=1#“来”清除“这个表。
这是很好的工作,但它不允许我选择更多的表从删除。
这是我想要做的伪代码:
DELETE FROM `products` WHERE `products`.`whatever` = **0 OR 1=1, FROM `othertable` WHERE `othertable`.`othercolumn` = 0 OR 1=1**这听起来可信吗?
如果这不可靠,我还能用别的方法吗?
发布于 2009-09-03 00:31:56
对于同一个DELETE语句,您不能有多个FROM子句,所以您不能按照您想要的方式去做。如果MySQL db打开了“每个语句都允许多个查询”,则可以尝试终止一个DELETE查询,然后将另一个DELETE查询切换到最后,这样看起来如下所示:
DELETE FROM `products` WHERE `products`.`whatever` = **0 OR 1=1; DELETE FROM `othertable` WHERE `othertable`.`othercolumn` = 0 OR 1=1**但仅此而已。
发布于 2009-09-03 00:33:27
https://stackoverflow.com/questions/1370851
复制相似问题