南邮 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()函数,

 


---------------------------------------------
知识点:
  strcmp()函数 :php5.3之前的strcmp的漏洞,当参数中的一个字符串是对象或者数组时,函数会返回0;
  hackbar的使用,post方法
  php弱类型,数组的使用。
 
posted @ 2019-04-07 22:04  one_pen  阅读(355)  评论(0)    收藏  举报