题目链接
[SWPUCTF 2021 新生赛]easy_md5
学习
=== 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较
== 在进行比较的时候,会先将字符串类型转化成相同,再比较
如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行
<?php var_dump("admin"==0); var_dump("1admin"==1); var_dump("admin1"==1) var_dump("admin1"==0) var_dump("0e123456"=="0e4456789"); ?>
|
前缀不是数字时,会转化成0,是数字时,会转化成数字
如果是0e开头,并且后面全是数字,则认为是0。
因而本题可以使用
md5('240610708') == md5('QNKCDZO')
|
QNKCDZO 0e830400451993494058024219903391
s878926199a 0e545993274517709034328855841020 s155964671a 0e342768416822451524974117254469 s214587387a 0e848240448830537924465865611904 s214587387a 0e848240448830537924465865611904 s878926199a 0e545993274517709034328855841020 s1091221200a 0e940624217856561557816327384675 s1885207154a 0e509367213418206700842008763514
|
array_search is_array绕过
是==比较,也就是说,如果$a里面有0的话,array_search是认为比较成功的