Break In CTF 2018

Break In CTF 2018 writeup Q2: Connecting Will

Q2: Connecting Will

Will is lost in the Upside-Down and is stuck with the Demogorgon. El is looking for Will, when, she stumbles across a piece of code that Will wrote. The Demogorgon could not decipher the code and hence just left it lying around. El needs your help to find the 2 numbers that can get her the secret key which Will was trying to share. Can you help her?

Link to submit: https://felicity.iiit.ac.in/contest/breakin/findingwill/index.html

<?php
/** 
 * Find hashes which match 
*/
if (!array_key_exists('val1', $_POST) || !array_key_exists('val2', $_POST)) {
    echo "Please send the inputs correctly\n";
    exit(0);
}

$first = $_POST['val1'];
$second = $_POST['val2'];

if (!(is_numeric($first) || is_numeric($second))) {
    echo "Invalid input\n";
    exit(0);
}

$hash1 = hash('md5', $first, false);
$hash2 = hash('md5', $second, false);

if ($hash1 != $hash2) {
    $hash1 = strtr($hash1, "abcd", "0123");
    $hash2 = strtr($hash2, "abcd", "0123");
    if ($hash1 == $hash2) {
        // Flag will be echoed here.
    } else {
        echo "Hard luck :(\nKeep trying\n";
    }
} else {
    echo "Hard luck :(\nKeep trying\n";
}

?>

Points: 500

Flag Format: BREAKIN{[0-9A-Za-z_]+}

HINT: It’s a magical world without magical methods

Tags: Misc

phpのソースコードを読むと次のことが分かります。
  • 2つの入力値のうち少なくともどちらか一方は数字である必要がある
  • それぞれのmd5ハッシュ値が異なる
  • それぞれのハッシュ値に出現するabcdの各文字を0123に置換した文字列を==で比較すると一致する
まず、phpでハッシュ値が0eで始まる文字列を==で比較すると0の累乗として扱われ両方とも0となって一致してしまうという問題があります。

したがって、1つ目の入力値の方はmd5ハッシュ値が0eで始まる文字列になり、2つ目の入力値の方はmd5ハッシュ値がaeで始まる文字列であれば、最初の比較では異なりabcdを0123に置換した後ではともに0eで始まるハッシュ値となり一致することになります。

下記のサイトで条件に該当するハッシュ値を探すことができます。

それでは問題に提示されたURLを表示します。240610708はmd5ハッシュ値が0eで始まり、8_g49iohyはmd5ハッシュ値がaeで始まりますので、それらを入力します。

1

下図のとおりフラグが表示されました。

2

フラグは、
BREAKIN{I_Will_Connect}
です。

初めてのPHP
David Sklar
オライリージャパン
2017-03-18


Break In CTF 2018 writeup Q1: Weird Error

Q1: Weird Error

Vaneesh wants to learn javascript from Sanukul. But Sanukul is busy with his love Mary. Vaneesh found something weird in the source code. Can you find it too?

Points: 100

Flag Format: BREAKIN{[0-9A-Za-z_]+}

HINT: Its not pretty, but it is important.

Tags: Misc

提示されたURLを表示します。下図のようにゲームらしき画面が表示されます。

1

jquery.min.jsファイルを見てみると下図のようにフラグが記載されています。

2

フラグは、
BREAKIN{MJISLUV}
です。

jQuery最高の教科書
株式会社シフトブレイン
SBクリエイティブ
2013-11-26


記事検索
ギャラリー
  • 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
カテゴリー