PHP弱类型(一)

如图,id的值必须满足上述表达式,才能返回想要的值

与运算,只要出现false,整个表达式返回false

看见后面的==就想尝试一下弱类型绕过,参考资料:https://www.cnblogs.com/Mrsm1th/p/6745532.html https://www.cnblogs.com/RenoStudio/p/10541885.html

使用参数 0e 尝试,但是编译器会报错


参考了别人的博客:

当一个字符串当作一个数值来取值,其结果和类型如下:

1.如果该字符串没有包含'.','e','E'并且其数值值在整形的范围之内该字符串被当作int来取值,其他所有情况下都被作为float来取值,该字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。

2.==为弱相等,也就是说12=="12" --> true,而且12=="12cdf" --> true,只取字符串中开头的整数部分,但是1e3dgf这样的字符串在比较时,取的是符合科学计数法的部分:1e3,也就是1000.

那么参数应该如下:

if('0e' and '0e'==0)

发现返回为true

[Sign]做不出ctf题的时候很痛苦,你只能眼睁睁看着其他人领先你
原文地址:https://www.cnblogs.com/echoDetected/p/12331005.html