PHP弱类型--strcmp()

来源:互联网 发布:阿里云服务器个人备案 编辑:程序博客网 时间:2024/06/05 00:44

pass check
300

核心源码

<?php$pass=@$_POST['pass'];$pass1=***********;//被隐藏起来的密码if(isset($pass)){if(@!strcmp($pass,$pass1)){echo "flag:nctf{*}";}else{echo "the pass is wrong!";}}else{echo "please input pass!";}?>

题目链接:tip:strcmp(array,string)=null=0

首先呢,这个题目因为题放在内网,没有vpn所以没法做,但是提示都这么明显了,就是php的strcmp函数了。传入一个array就好了。

ps:

strcmp()函数在PHP官方手册中的描述是int strcmp ( string str1,stringstr2 ),需要给strcmp()传递2个string类型的参数。如果str1小于str2,返回-1,相等返回0,否则返回1。strcmp函数比较字符串的本质是将两个变量转换为ascii,然后进行减法运算,然后根据运算结果来决定返回值。
如果传入给出strcmp()的参数是数字呢?

$array=[1,2,3];var_dump(strcmp($array,'123')); //null,在某种意义上null也就是相当于false

资料链接:PHP弱类型安全问题总结

另附他人已做贴出的writeup:
这里写图片描述

0 0