我正在学习SQL注入,我似乎无法理解order by语句。 wwwschools中的定义是,这会按升序或降序对给定表进行排序。使用整数时会发生什么?
例如。 按1排序
http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_orderby 当我在这个例子中使用1的顺序时,我得到的客户ID从1到91排列。 当我在这个例子中使用2的订单时,我得到客户ID以锯齿形方式排列。 这种行为的原因是什么?如何在sql注入中使用命令来获取列数?
答案 0 :(得分:3)
它可能是盲目SQL注入攻击的一部分。在服务器突然报告错误之前,您不断增加数字(表示应使用SELECT
子句中的哪一列来确定排序顺序)。您现在知道查询的SELECT
子句中的列数(它比您刚尝试的数字少一个)
答案 1 :(得分:0)
order by 1
表示按结果集中第一列的值排序
order by 2
表示按结果集中第二列的值排序。
SQL中的order by子句与SQL注入AFAIK没有直接关系。