アオカケスの鳥かご

日々の出来事を綴っていきたい

HSCTF6 writeup

HSCTF 6 に参加しました。もっと難しい問題を解けるようになりたい。

Forensics

Chicken Crossing[53]

stringsするだけ。

hsctf{2_get_2_the_other_side}

Cool Image[101]

普通に開くことも出来ず、ブラウザで開くこともできません。
とりあえずforemostでやってみたらpng画像が出てきてflgaが書いてありました。

あとでヒントを見てみたら「本当にpdf?」的なことが書いてあったのでfileコマンドやってみたら普通にpngで、拡張子をpngにするだけでした。

hsctf[who_uses_extensions_anyways}

Cool Image2[105]

fileコマンドで確認してみると、dataファイルでした。
今度こそforemostでいいのではないでしょうか。

hsctf{sorry_about_the_extra_bytes}

Slap[107]

fileコマンドやforemostではとくに何も出てきません。
exiftoolsに突っ込んでみたら何かいっぱい書いてありました。その中にflagが埋もれています。

hsctf{twoslapsnonetforce}

Logo Sucks Bad[164]

fileコマンドやforemostではとくに何も出てきません。
どうしたものかなぁ~と考えつつ色々writeupを漁っていたところ、以下のサイトで画像をdecodeしているものがあったのでやってみたらいけました。

hsctf{th4_l3est_s3gnific3nt_bbbbbbbbbbbbb}

Miscellaneous

Discord[10]

Discrodにアクセスするだけ。

hsctf{hi_welcome_to_discord}

Verbose[111]

6種類の記号 []()!+ だけで動くJavaScriptです。実行するだけ。
paizaでやってみました。
Online PHP/Java/C++... editor and compiler | paiza.IO

hsctf{esoteric_javascript_is_very_verbose}

Admin Pass[133]

gitlabのコミットの履歴を見ていくと、2f48a1b4あたりにflagと思わるものがありました。
問題文のリンク先のpassword checkerに入力してみるとちゃんと通りました。

hsctf{i_love_richard_stallman_hes_so_cute_8a65926fcdcdac0b}

A Simple Conversation[149]

python3で動いているプログラムで、年齢を聞かれます。
ソースコードを見てもとくに何も分かりませんでしたが、色々入力を試してみると、数字以外で挙動がおかしくなるようでした。
表示されるエラー文から察するに、文字列を入力した場合、ダブルクォーテーションやシングルクォーテーションで囲われないようです。

ここにプログラムを追記することができそうです。以下のようにライブラリをインポートしてcatコマンドを実行するように入力してみます。

__import__('os').system('cat flag.txt')

flagがありました。

hsctf{plz_u5e_pyth0n_3}

自分の環境ではinputは全て文字列として受け取るので動きませんでした。
pythonのバージョンの問題でしょうか。

Web

Inspect Me[51]

リンクに飛んでみると真っ黒なページが表示されます。また、右クリックが禁止されています。
まぁ右クリックが禁止されているだけなので特に問題はありません。

URLの先頭に「view-source:」を付ければ普通にソースを確認できます。F12でもいいですね。
ソースに1つ目のflagが書いてあります。

style.cssとscript.jsに2つ目、3つ目のflagがありました。全部繋げてflagの完成です。

hsctf{that_was_pretty_easy_right}

Agent Keith[101]

とりあえず普通にアクセスしてみると flag のところが Access Denied になっていて見えません。

ソースを見てみると「」と書いてあったので、chromeデベロッパーツールでUser agentを変更します。

F12→More tools→Network conditions で設定します。
User agentの「select automatically」のチェックを外して、Customのまま「NCSA_Mosaic/2.0 (Windows 3.1)」を入力するばflagが表示されます。

hsctf{wow_you_are_agent_keith_now}

S-Q-L[101]

ごく初歩的なSQLインジェクションです。
1' or 1 = '1 を入力するだけ。

hsctf{mysql_real_escape_string}

The Quest[102]

googleフォームに案内されます。当然SQLインジェクションなどは通りません。
ヒントを見てみると全部解く必要は無いみたいなことが書いてあったので、ソースを確認してみたら最後のほうに書いてありました。

hsctf{google_forms_regex_cant_stop_nobody}

Cryptography

Reverse Search Algorithm[129]

Nが分かっているのでmsieveで素因数分解してpとqを割り出します。
f:id:aokakes:20190604220409p:plain

p = 29
q = 19378812610208711050554891591368513578428260883630885898953907471497427917962675301070084754463193723428901453

pとqが分かればあとは少しプログラムを書くだけです。

hsctf{y3s_rsa_1s_s0lved_10823704961253}