南邮 pass check
题目:
<?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!";
}
?>
看到这道题,觉得跟前面的变量覆盖很相似,直接尝试了用hackbar:

答案直接出来:flag:nctf{strcmp_is_n0t_3afe}
这道题我们需要做的就是 让 @!strcmp($pass,$pass1 这个条件成立 .想到使用php的弱类型漏洞 : (查询php的strcmp函数的API)。
找到一篇 题解。
首先理解strcmp()函数,


SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
---------------------------------------------
知识点:
strcmp()函数 :php5.3之前的strcmp的漏洞,当参数中的一个字符串是对象或者数组时,函数会返回0;
hackbar的使用,post方法
php弱类型,数组的使用。

更多精彩