Less-01
字符型'
联合查询Or报错注入
联合查询
报错注入
Less-02
数值型
联合查询Or报错注入
联合查询
报错注入
Less-03
字符型')
联合查询Or报错注入
联合查询
报错注入
Less-04
字符型")
联合查询Or报错注入
联合查询
报错注入
Less-05
字符型'
布尔盲注or报错注入
布尔盲注
报错注入
Less-06
字符型"
布尔盲注Or报错注入
布尔盲注
报错注入
Less-07
字符型'
提示:Use outfile
将查询结果写入version.txt文件,提示报错,但文件已经写入成功
也可以写入一句话
php代码使用'
进行包裹,可以防止$
被浏览器转义导致无法正常写入
Less-08
字符型'
没有错误回显,无法报错注入
布尔盲注
Less-09
字符型'
此关标题为基于时间的盲注
在代码里,不管是否正确,都显示相同的输出“You are in………..”
所以只能使用延时盲注
Less-10
字符型"
和Less-09一样,都是基于时间的盲注
不同之处在于,使用"
进行闭合
Less-11
字符型'
使用万能密码可以登录
可以使用联合查询进行注入
可以使用报错注入进行查询
Less-12
字符型")
同样使用万能密码登陆
在构造payload时,使用("")
进行包裹
同样可以使用联合查询、报错查询
Less-13
字符型')
使用万能密码登录
无回显
使用布尔盲注
Less-14
字符型"
和Less-13除了闭合方式不同外,其他均相同
由于有错误提示,可以使用报错注入
Less-15
字符型'
使用万能密码测试闭合
使用布尔盲注
使用延时盲注
Less-16
字符型")
使用万能密码测试闭合
和Less-15除了闭合方式不同外,其他均相同
Less-17
字符型'
判断闭合
报错提示
1 | near '")' WHERE username='admin'' |
第一个和最后一个'
是报错自带的,可以无视
在payload里写的是'")
,但在报错提示中,少了一个'
,所以唯一的解释是这个单引号和前面的单引号闭合了,所以可以判断是字符型'
。
在尝试的过程中,uname无法产生报错信息,查看源码发现,uname被各种转义,而passwd并没有被转义,所以在passwd处进行注入。
在报错信息中,可以看出uname是由单引号包裹的,按照写代码的习惯,可以推断passwd也是由单引号包裹的,但这种推断并不合理。
报错注入
延时盲注
Less-18
HTTP头部-UserAgent注入
字符型'
为什么不正常注入呢?因为在代码中,uname和passwd都被转义了
为什么要从UserAgent注入呢?因为标题有Uagent
这题刚打开只显示IP,只有登录才可以显示UA,但uanme和passwd都被转义了,只能正常登录,从Less-17可以修改密码
使用BP抓包对HTTP请求进行修改
payload中,'1'='1
是因为在代码中insert添加了3个字段,为了不报错,需要再添加一个字段;但是直接注释掉却会报错,不明白为什么。
显示页面
Less-19
HTTP头部-Referer注入
字符型'
和Less-18除了注入位置不同之外,其他相同
从代码上看,不需要,'1
因为已经2个字段了,但不加会报错,不明白为什么,需要再想想。
显示页面
Less-20
HTTP头部-Cookie注入
字符型'
联合查询
登录之后,对cookie进行修改
显示页面
报错注入
登录之后,对cookie进行修改
显示页面
Less-21
HTTP头部-Cookie注入
字符型')
联合查询
登录之后,对cookie进行修改
显示页面
报错注入
登录之后,对cookie进行修改
显示页面
Less-22
HTTP头部-Cookie注入
字符型"
跟Less-21的区别是需要使用"
进行闭合
报错注入
登录之后,对cookie进行修改
显示页面