最近在学习一些sql注入方面的知识,做个笔记,加深印象。
简单案例
SELECT username FROM users WHERE username =’ _____’ GROUP BY username ORDER BY username ASC
上述横线位置输入可以进行sql注入,输入的语句即为where 的内容,从而select出符合where 限定条件后的 username(字段)下的内容。
order by +字段名 / 列数 (用来进行排序)
order by 加列数 可用来判断select筛选的字段数
例如上述横线位置可输入 1’ order by 1 # (#为注释,注释掉后面的语句),没有返回结果。
然后输入 1‘ order by 2 #
返回 Unknown column ‘2’ in ‘order clause’
因为只select了一个字段username,所以order 2 会报错,可以判断出查询的字段数为1。
了解字段数的目的是为了配合使用联合查询的方法(union)来进一步获取数据库的内容。