打开网站,审计代码
看到if条件,第一个if条件intval的意思是转换为整数,主要意思就是说需要a不含数字而且intval取整数,所以使用数组绕过,payload: a[]=a
然后开始绕过第二个if条件,第二个很简单,就直接传入b1和b2就好了,那么往下看第三个if条件,意思是传入的b1条件不等于b2,与md5加密的b1等于b2,这个在很多题目上都考到了的,因为md5不会处理数组,面对数组都会返回为null所以使用b1[]=1&b2[]=2
接下来就是第4个if语句了,这个的话需要传入c1和c2,且c1不等于c2,还要满足条件c1和c2都要是字符串类型, c1和c2的md5加密是弱类型,所以前两位相同就可以,要传入值是字符串且md5值相等
0e开头的字符串有
那么可以构造payload为a[]=1&b1[]=1&b2[]=2&c1=QNKCDZO&c2=QLTHNDT
成功获取到flag,解题成功