2017-11-12 10 views
-3

私は2つの独立したPHPコードスニペットを持っており、それぞれのログインをバイパスする必要があります。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

これは質問のタイプではありません。これは、*書き込み*コードとは関係ありません。*コードをバイパスすることとは関係ありません。 – rickdenhaan

答えて

0

私はこの質問のポイントが何であるかわからないけど、あなたのGETリクエストで、次のJSONを指定した場合、あなたは

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

jsonのパラメータは引用符で囲まれています。だから本当!= "真"。 そして、これは私が与えられた挑戦であり、私はこれを解決する必要があるということです。 –

+0

'http:// localhost:8888/json.php?jsonString = {" user ":true、" pass ":true}'に行くと、 "あなたは今ログインしました"というメッセージが表示されます – Chris

+0

さて、ありがとう、私はしようとします。最初のスニペットのアイデアは? –

0

まずスニペット「ログイン」することがあります:

場合パラメータ$_GET['pass']0,またはfalse

に設定され、ログインがバイパスされます。 これは、文字列であるため、0と評価されるデフォルトのパスワードの(int)キャストによるものです。

第二スニペット:クリスのよう

は、要求のログインをバイパスで{"user":true,"pass":true}を渡し、言いました。

関連する問題