В обход логина php

У меня есть 2 независимых фрагмента кода PHP, и я должен обойти логин для каждого.

<?php
//$pass = "8809834433" // OLD
$pass = "a343545435"; // NEW for Update
if ((int)$_GET['pass'] == $pass) {
    echo "You are now logged in as admin!";
} else {
    die("invalid Login!");
}
?>

а также

<h1>Login</h1>

<?php

// $_GET['jsonString'] = '{"user":"admin","pass":"4fdsfj209dj"}';
$jsonString = $_GET['jsonString'];
$data=json_decode($jsonString, true);

$username = "admin";
$password = "4fdsfj209dj";

if($data['user']==$username && $data['pass']==$password) {
    echo "You are now logged in!";
}else{
    die('wrong Password or Username!');
}

?>

Есть идеи, как это решить?

2 ответа

Я не уверен, в чем суть этого вопроса, но если вы укажете следующий JSON в своем GET-запросе, то вы будете "авторизованы"

{"user":true,"pass":true}

Первый фрагмент:

Если параметр $_GET['pass'] установлен в 0, или же false

тогда логин будет обойден. Это связано с (int) приведением пароля по умолчанию, который оценивается как 0 потому что это строка

Второй фрагмент:

Как сказал Крис, проходя мимо {"user":true,"pass":true} в запросе обходит логин.

Другие вопросы по тегам