LoginSignup
3
0

NS-CSC 第一回 WriteUp

Posted at

1. Welcome ☆

問題文の中に書かれているフラグを入力すれば成功

flag{abcd}

2. よいしょ、よいしょ ☆☆

これはシーザー暗号で暗号化されています。
このサイトを使うとすぐにフラグを見つけることができます

flag{Caesar_Caesar_Caesar_Caesar}

3. つーとん、つーとん ☆☆

つーとんから連想されるのは、電信。
フラグはローマ字になるのでアルファベットのモールス信号で解読します。

flag(morse_code_morse_code_morse_code)

4. 氷を溶かすように ☆☆

氷を溶かす=>解凍する=>zipを解凍する

flag{d715e102-4869-749e-76d3-2e6435b5bd3e}

5. 認証はどこで? ☆☆☆

ただのログインページに見えますが、どうでしょうか。
HTMLを見てみると次のコードがある事がわかります。

function login() {
    const username = document.form.username.value;
    const password = document.form.password.value;
    console.log(username)
    console.log(password)

    if (username === "admin" && password === "admin123456") {
        alert(`Login successful \nflag: flag{eeecafba-11ad-3779-67b8-5c98f699490b}`);
    } else {
        alert("Login failed");
    }
}

if文でuserとpasswordを一致させて認証していることがわかります。

ログインページにadminとadmin123456を入力するとフラグがわかります

flag{eeecafba-11ad-3779-67b8-5c98f699490b}

6. ログインできますか ☆☆☆

またログインページです。一つ前の問題のようにHTMLを見てもなにもわかりません。
ログインページでアタックできる方法は色々ありますが、単純なのがSQLインジェクション

コードは次のようになっていて入力部分の内容を直接入力していることがわかります。

try {
    const results = await db.query(`SELECT * FROM test where user='${req.body.name}' AND pass='${req.body.pass}';`)
    await db.end()
    console.log(results)
    if (results.length !== 0 ){
        res.status(200).json({ message: `ログインに成功しました。\nflag: ${process.env.FLAG}`});
    }else{
        res.status(401).json({message: `ログインに失敗しました`});
    }
} 

ユーザー名に

1'OR'1'='1'-- ; 

と入力するし、パスワードに適当な文字列を入れるとフラグ入手

flag{9362c960-388d-c9d4-db85-15705f47d602}

ちなみに、ユーザー名に入力すると以下のSQLクエリ文が生成でき、

SELECT * FROM test where user='1'OR'1'='1'-- ; ' AND pass='${req.body.pass}';

「-- ;」によってパスワードのAND文が無効化され、userの条件式は常にTrueになるのでログインできるという仕組みになります

7. 本当に消えてる? ☆☆☆

Gitのレポジトリを使用した問題でした。

Gitはバージョン管理のソフトウェアで、一度コミットしてしまうと、
取り消しをしない限り消えないという仕様があります。
間違えて機密情報をのせてしまった場合、当該ファイルを消しても消えないのです。

問題に載せられていたgitレポジトリの2番めのコミットを見ると、flagが表示されます。

flag{8dd8ea2f-e76f-7d90-0d92-ed238abe5e3a}
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0