初心者がCpawCTF(Level2)を解いたメモ

  •  Q13.[Stego]隠されたフラグ
    1. DLした画像の左上と右下の2か所に黒い模様(モールス信号)が!
    2. モールス信号をググって打ち込むとフラグが表示されるのだが、日本語ではなくアルファベットを、かつアンダーバー(_)が表示できるサイトで変換するのが大事~

 

  • Q15.[Web] Redirect
    1. (使用ブラウザ:Firefoxにて)問題が表示されているWebページ上で「右クリック>調査(Q)」をクリックし、表示された画面(デベロッパーモード)の「ネットワーク」を選択する
    2. 問題で示されたURLをクリックすると「http://q15.ctf.cpaw.site/」から「http://q9.ctf.cpaw.site/」にリダイレクトされているのがわかる
    3. デベロッパーモードの「ネットワーク>q15.ctf.cpaw.site>応答ヘッダー>X-Flag」を見ると答えのフラグがあったよ〜

 

  • Q16.[Network+Forensic]HTTP Traffic
    1. DLしたパケットをダブルクリック(Wiresharkで開く)
    2. HTTPプロトコルの部分を選択し、Wiresharkの「ファイル(F)>オブジェクトをエクスポート>HTTP...」を選択する

    3. 開いた画面の「すべて保存」から保存したいフォルダを選択し「開く」ボタンをクリックする(http関連のファイルが全て保存される〜!感動!(*゚∀゚))

    4. 保存したファイルにある「network100(1)」をダブルクリックするとそれっぽいWebページが表示される
    5. ソースコードを確認してファイルを正しい位置に移動する

    6. 移動出来たらWebページをリロードして、押せ!と書かれている「ボタン」をクリックすると画像にフラグが表示される

 

  • Q17.[Recon]Who am I ?
    1. Twitter(X)で垢検索
    2. 「メディア」欄を下にスクロールすると「最多キル更新した」ってツイート(ポスト)があるのでその画像に表示されているアカウント名がフラグ

 

  • Q18.[Forensic]leaf in forest
    1. DLしたファイルをテキストエディターで開くと「lovelive!」がたくさん書かれていて、所々違う文字列が入っているっぽい
    2. 「lovelive!」を「大/小文字と大文字を区別する」にチェックを入れて置換する

    3. なんか微妙な文字が残っているので「lovelive!」を1文字ずつ(「l」から「!」まで)置換する
    4. 大文字が三文字ずつの繰り返しで残るので、それを1文字ずつ取るとフラグになった

 

  • Q19.[Misc]Image!
    1. DLしたファイルを展開して適当にファイルを開いていくと「mimetype」ってファイルに「application/vnd.oasis.opendocument.graphics」と記載されている。怪しいのでググる
    2. 検索結果のWiKihttps://ja.wikipedia.org/wiki/OpenDocument)をずーっと下にスライドしていくと「アプリケーションソフトウェアの対応」の部分に「LibreOffice は、ODFを標準ファイル形式として採用している。」と書かれている。UbuntuLibreOfficeが入っているので開くアプリはこれで決まり
    3. ただ、次はWikiを上にスライドして「仕様」の部分に「ODFは、複数のXMLファイルをZIP形式でデータ圧縮したファイルである。 」と書かれている。つまり、DLした状態のZIPファイルをLibreOfficeで開く
      • ※ZIPを展開した後のファイルをLibreOfficeで開いてもダメだよ〜
      • ※自分はZIP展開後の「thumbnail.png」をLibreOfficeで開いて黒い箱が動かなくてしばらく画面と睨めっこしてた(´・ω・`)
    4. ZIPファイルをLibreOfficeで開くと画像が表示される。黒い箱を動かすとその下にあるフラグがゲットできる

 

  • Q20.[Crypto]Block Cipher(←久しぶりに自分だけで解けたやつ!)
    1. DLしたファイルのコードを見ると引数が2つ必要なのが分かる。
      7行目の「int key = atoi(argv[2])」より2つ目の引数は数字っぽい。
      8行目の「const char* flag = argv[1];」と10行目の「printf("%c", flag[j]);」より1つ目の引数は文字列っぽいのでここに暗号文を入れてく感じ。
    2. DLしたC言語のファイルをコンパイルして『"実行ファイルのパス” ruoYced_ehpigniriks_i_llrg_stae 1』みたいに引数を与えて実行する。最後の数字の引数は1から順番に1,2,3…と増やしていく。そのうち読める英語が出てくるのでそれがフラグ~(*´ω`*)~
      • ※『”実行ファイルのパス” ruoYced_ehpigniriks_i_llrg_stae 4』これで答えのフラグが出てきたヨ

 

  • Q21.[Reversing]reversing easy!
    1. DLしたらとりあえず、ファイル形式確認『file rev100』権限確認『ls -la rev100』実行権限付与『chmod +x rev100』
    2. 32bitさんを動かすには『sudo apt install gcc-multilib』と『sudo apt install g++-multilib』も必要だとか。これでやっと実行できたんだけど、結果は「cpaw{}」←これだけ
    3. 次にバイナリファイルの可読文字を表示させてみる『strings rev100』
    4. それっぽい文字が既に読めてるけど、自分は他のWriteup読んでて全く気付かず
    5. バイナリファイルの解析ツール「IDA」の無料版をDLした。「IDA Free for Linux」をDLしてチェックサムも確認~

      hex-rays.com

    6. DLしたファイルを実行(権限なかったらchmod +x)して言われるがままにインストール
    7. デスクトップにアイコンできたからそれクリックして、Newで問題のバイナリファイルを選択すると何かいい感じに設定してくれてるから適当にOKボタン押していく。
    8. さすがにここまで分かりやすくフラグ書いててくれたら分かった(*´ω`*)

 

  • Q22.[Web]Baby's SQLi - Stage 1-
    1. 与えられたURLにアクセス
    2. テーブル名も教えてくれてるからそれで表示させる『select * from palloc_home』とフラグも出てくる

 

 

  • Q28.[Network] Can you login?
    1. DLしたパケットをWiresharkで見ると下の方に「FLAG file exsists in this directory」と書かれたデータの子がいて、ディレクトリは「Current working directory: /」となってた

    2. 上の方にスライドしていくとサーバにアクセスしたときのログイン情報が載ってて、アクセス先IP『118.27.110.77』ログインユーザ『cpaw_user』ログインPW『5f4dcc3b5aa765d61d8327deb882cf99』となっている

    3. その情報でアクセスしてフラグファイルをゲットすればOK
      ※なんだけど、ftpでログインしたら「passive」モードにしないといけない(passiveにしないまま『la -a』するとタイムアウトで接続切れる)らしい。
      自分はもともとVirtualBoxUbuntu動かしてるんだけど、それだとpassiveモードにできなくって。。。
      Windowsでやっても無理で、ググったらFFFTP入れてやれ、って書いてあったからそうしたんだけど隠しファイルが表示できず(ちゃんと設定の「隠しファイルを表示する」にチェックは入れたんだよ。。。)
      Windows上でLinux環境が動かせるWSLがあったやん!って思い出してWSLインストールして、そこからやっとftpが実行できたのです。。。

 

以上でござります。。。