http://chinalover.sinaapp.com/web21/

原理:

php的弱类型漏洞

strcmp函数接受到了不符合的类型,strcmp函数将发生错误,显示了报错的警告信息后,将 return 0。

版本一

题解:抓包

工具:Burp Suite

步骤:

$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!";
}
?>

审查元素

修改HTML

<html>
<head>
</head>
<body>please input pass!
<form action="index.php" method="post">
    <input type="text" name="pass">
    <input type="submit" name="提交">
</form>
</body>
</html>

随便提交一个数据

并且抓包

右键

修改数据

GO

版本二

工具:火狐浏览器插件hackbar

步骤:

$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 POST 数据 

pass[]=hack

参考文章:

  1. php弱类型相关文章
  2. 浅谈php弱类型安全
  3. PHP 松散类型比较表