使用 strcmp 挑战 PHP
Challenge PHP with strcmp
我正在尝试挑战 PHP / 逻辑和黑客。我必须打印页面 "Success" 找到此页面 http://leggend.orgfree.com/index.php/challenge/strcmp.php 的密码,当我发现我必须将密码添加到 URL 中的密码时,如下所示:
http://leggend.orgfree.com/index.php/chall...mp.php?psw=PASSWORD
密码(我认为是这个)在 password.php 等,但如果你进入 password.php 进入挑战站点。
我发现 psw = 00 但不正确
用作
http://leggend.orgfree.com/index.php/challenge/strcmp.php?psw[]=
这样就可以了
PHP return 中的函数在接收到错误类型的参数时为 NULL。在 strcmp 的情况下,两个参数都必须是字符串。我将变量作为 "psw[]" 传递,在这种情况下它变成数组。所以 strcmp 的参数是 Array 和 String 和函数 return NULL。然后检查 == 在不同类型的情况下发生类型转换并且 NULL == 0 returns 为真。要解决这个问题,只需将 == 替换为 === 或检查输入参数的类型。所以固定代码看起来像:
$correctPassword = include "password.php";
if (isset($_GET["psw"]) && strcmp($_GET["psw"], $correctPassword) === 0) {
echo "Successo!";
}
我正在尝试挑战 PHP / 逻辑和黑客。我必须打印页面 "Success" 找到此页面 http://leggend.orgfree.com/index.php/challenge/strcmp.php 的密码,当我发现我必须将密码添加到 URL 中的密码时,如下所示:
http://leggend.orgfree.com/index.php/chall...mp.php?psw=PASSWORD
密码(我认为是这个)在 password.php 等,但如果你进入 password.php 进入挑战站点。
我发现 psw = 00 但不正确
用作 http://leggend.orgfree.com/index.php/challenge/strcmp.php?psw[]= 这样就可以了
PHP return 中的函数在接收到错误类型的参数时为 NULL。在 strcmp 的情况下,两个参数都必须是字符串。我将变量作为 "psw[]" 传递,在这种情况下它变成数组。所以 strcmp 的参数是 Array 和 String 和函数 return NULL。然后检查 == 在不同类型的情况下发生类型转换并且 NULL == 0 returns 为真。要解决这个问题,只需将 == 替换为 === 或检查输入参数的类型。所以固定代码看起来像:
$correctPassword = include "password.php";
if (isset($_GET["psw"]) && strcmp($_GET["psw"], $correctPassword) === 0) {
echo "Successo!";
}