做代码审计,发下flag分为两部分,要达到两个条件才能获得完整的flag
=== 会同时比较字符串的值和类型
== 会先将字符串换成相同类型,再作比较,属于弱类型比较
所以flag1条件是使$a为0或者是它为字母字符,例如$a=abc在比较时也是成立的,但是有个and $a,要判断$a是真是假,而在编程语言中0是代表假,1代表真,所以$a不能直接等于0,可以考虑在0后面加字符或者空格是可以的。
即可得到flag1
flag2的条件:
is_number()函数判断$b是否为数字或者数字字符串,然后后面又和1234比大小,可以效仿第一个条件比如12345a(任意字母,使得is_number返回false就行),使函数返回false可以在最前面或者最后面加上%00或者在最后面加上%20(只能在最后面)
例子:61.147.171.105:50522/?a=0 &b=12345s
php弱类型总结:https://www.cnblogs.com/Mrsm1th/p/6745532.html(博客园)
如有错误,欢迎指正。