看得出来,这是一道关于php代码的问题
首先我们要做这道题就要了解到这个代码是什么含义
首先分析这段代码,创建了两个GET变量a和b,然后进行了三次判断。
第一次,只有当a同时满足a=0和a为真的时候会显示出flag1的这个变量。
第二次,如果b是整数或者是是数字的时候,字符串会被退出。
第三次,当b>1234的时候可以得到flag2。
又因为php是弱语言类型“==”仅仅表示的是数值相等,而且当数字和字母组成的字符串比较的时候,仅会以前面的数字参与比较。
那么对于a的话,我们直接传一个字母a进去,因为a是没有赋值的,所以通过比较,字符串‘a’==0是true的,并且a也是true的,因此符合条件可以得到flag1。
ok是只得到了一般的flag,那我们接下来看b
对于b的话,我们可以传给他6666a,这样b就不是数字串,6666a会自动转换成6666再去和1234进行比较,他比1234大因此得到true。(不一定非要6666a只要是比1234
大的数字就可以)
因此我们得到了另一半的flag
当然我们也可以一起出flag,只需要在ab分别的条件中间加一个“和&”的符号就行
答案:
Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}