题目:

<?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:
南邮 pass check 随笔 第1张
答案直接出来:flag:nctf{strcmp_is_n0t_3afe}
这道题我们需要做的就是 让 @!strcmp($pass,$pass1 这个条件成立 .想到使用php的弱类型漏洞 : (查询php的strcmp函数的API)。
找到一篇 题解
首先理解strcmp()函数,
南邮 pass check 随笔 第2张
南邮 pass check 随笔 第3张

南邮 pass check 随笔 第4张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

南邮 pass check 随笔 第5张
---------------------------------------------
知识点:
  strcmp()函数 :php5.3之前的strcmp的漏洞,当参数中的一个字符串是对象或者数组时,函数会返回0;
  hackbar的使用,post方法
  php弱类型,数组的使用。
 
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄