点击右上角的菜单,有一个payflag,直接点击,进入到了pay.php页面
发现,需要得到flag有两个要求:必须是该校的学生,密码必须正确。
在该页面的网页底部,有代码提示,要求密码不能是纯数字,最后又要==404密码才正确。我们可以想到利用php的弱类型比较:只要前缀有404就好。
那需要做的就是获取该校学生的身份即可。直接抓包看下能否利用某个字段实现权限获取。
抓包发现cookie字段中有个user=0,我们直接修改为1,类型修改为POST,加上密码再发回去。发现没反应,这里有个坑,如果直接在burp suite中将GET修改为POST,类型还是GET,并没有修改成功。需要先使用hack bar的POST功能抓包,再修改。
这里说账号密码对了,还需要付钱,猜测字段为money。增加money字段设置为100000000
但是说密码太长,这里可以才有科学技术法,写成1e9;也可以使用strcmp数组绕过。
strcmp函数的作用:比较两个字符串,如果str1<str2 则返回<0 如果str1大于str2返回>0 如果两者相等 返回0。但是如果强行传入其他类型参数,会出错,出错后返回值0,正是利用这点进行绕过。有人说这个漏洞仅存在与php5.3之前,但经验证7.3仍存在这个漏洞。