第一步:
通过查看5.0.15和5.0.16版本的对比,可以看到16版本对在Builder.php里面对数据库的增减做了修正,所以可以15版本的漏洞就存在在这里。这里的代码用的拼接的方式,就可以尝试使用报错注入来实现。
第二步:
我们尝试传入三个参数:
?username[0]=inc&username[1]=updatexml(1,concat(0x7e,user(),0x7e),1)&username[2]=1
发现成功报错回显
第三步:
为了清楚代码是怎么走的,我们可以在insert()打一个断点,重新提交后就可以进入断点了,这里我们可以看到username有三个值。
我们一一直往下走最后会跳转到这里:
到了这里就发现,我们注入的三个值在这里派上了用场,val[1]就是注入的报错语句,这里走完,返回的就是报错注入语句+1,接下来我们继续走,一直走到这里
通过这里的替换,最终执行的就是以上的语句。