感谢:长亭科技的学习资料

PHP中有两种类型比较符号 == 和 === 其中 == 在比较前会将类型强制转换为一样,而 === 会先比较符号两边的类型。
CTF中的PHP弱类型_整型
一个数字和字符串比较的时候会将字符串转换为数字,如果一个字符串中不包含 ‘.’,‘E’,'e’并且数值在整型范围内则当作int处理,否则按照float处理。如果字符串首字母不是数则当作0处理,是数字就当作那个数字处理

题型1. strcmp字符串比较

CTF中的PHP弱类型_字符串_02
因为这里strcmp函数比较出了错所以返回了NULL,NULL==0 所以这里输出了flag

题型2. 字符串比较升级版

CTF中的PHP弱类型_字符串_03
怎样可以使两个字符串不同而MD5后的结果相同呢,虽然MD5理论上是存在重复的但是这里显然考的不是这个知识点
CTF中的PHP弱类型_强制转换_04
由前面的介绍可知“0eXXXXX”之类的会按照0处理所以找两个MD5后为0e开头的即可

CTF中的PHP弱类型_字符串比较_05

题型3. 登录逻辑常见考点

CTF中的PHP弱类型_整型_06

网络上志同道合,我们一起学习网络安全,一起进步,QQ群:694839022