阅读网页内容,是php代码分析
手动把代码整理出来
最终目标满足全部的if条件
进到最内层的 highlight_file(‘flag.php’)
GET传id,gg
POST传password
有!== 弱类型比较,要不成立
有is_numeric(),要判定不是数字或者为字符串数字
还有一个id和gg的MD5()函数值需要相等,同时满足id和gg的值又要不等,参考以下博客,md5([])===md5([]),构造数组让两边同时返回null ,等式即成立,&&后面的 弱类型比较也可以同时满足
关于MD5函数绕过思路
1.传md5值是0e开头的字符串,比如
QNKCDZO(0e830400451993494058024219903391) 和
s878926199a(0e545993274517709034328855841020)
因为php在利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0
2.传递数组 因为向md5函数传递数组会返回NULL
————————————————
无独有偶o[MRCTF2020]Ez_bypass 1
最后一个if
password == 1234567 弱类型比较要成立
构造赋值数组:id []= 111 gg[]=123
以及变量 password = 1234567a
尝试,结束