初心者がpicoGymを解いたメモ(途中)

  1. Obedient Cat

    • ファイルに平文で記載されている

  2. Mod 26

    • シーザー暗号(13文字右にずらしてある)

  3. Python Wrangling

    • DLした「flag.txt.en」を「pole.txt」にリネーム

    • コマンド『python 'ende.pyのパス' -d 'pole.txtのパス' 』を実行

    • 「Please enter the password:」と言われるので「pw.txt」に記載されているパスワードをコピペして実行するとフラグがもらえる

  4. Wave a flag

    • DLしたファイルに実行権限をつける『chmod +x 'パス'』

    • そのまま実行すると「-h」をつけるといいよと言われるので「-h」つけて実行する『'warmのパス' -h』とフラグをもらえる

  5. information
    • 下記コマンドでexiftoolをインストールする
      『sudo apt install libimage-exiftool-perl
    • DLした画像(cat.jpg)のメタデータを表示する
      『exiftool 'cat.jpgのパス'』
    • 表示されたデータの「License」値が怪しい(らしい)ので、base64でデコードする(らしい。。。)
      『echo cGljb0NURnt0aGVfbTN0YWRhdGFfMXNfbW9kaWZpZWR9 | base64 -d』←このコマンドの実行結果がフラグだったよ!!
    • Base64は、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。

      https://ja.wikipedia.org/wiki/Base64

 

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

  • Q23.[Reversing]またやらかした!
    1. みんなのWriteup見てたら「ghidra」が必要らしいのでインストール
    2. ここからzipファイルをダウンロード
      '/home/ubuntu/ghidra_11.0.2_PUBLIC_20240326/ghidra_11.0.2_PUBLIC/ghidraRun'
    3. DLしたZIPを展開したら、Ubuntuを使ってる場合「ghidraRun」を実行するんだけど、実行にはjavaが必要とのことなのでjavaをインストールしていく
      • sudo apt update
      • sudo apt upgrade
      • sudo apt-get install default-jre
      • sudo apt-cache search openjdk
      • sudo apt install openjdk-21-jdk
    4. これが終わった後に「ghidraRun」を実行すると使えた
    5. 使い方は端折るとして「ghidra」の右側の画面31行目に「local_44[local_84] = local_7c[local_84] ^ 0x19;」と書いてあるよ
      ※この記号「^」は「ビット毎の排他的論理和」をとるらしい
      (参考URL:https://www602.math.ryukoku.ac.jp/Prog1/cops.pdf
      つまり、local_7c[0]〜local_7c[13]に対して、一つずつ「0x19」との排他的論理和をとってlocal_44[0]~local_44[13]に格納してる

    6. 「ghidra」の右側の画面に表示されたコードを、新しく作ったCのファイルにコピペして、単語をC言語用にちょっと書き直す。ついでにprintfを追加して実行すればフラグゲット(/・ω・)/

      (どうでもいい話ですけど、1回限りのコードは基本コピペで済ます派です)

 

 

  • Q26.[PPC]Remainder theorem
    1. これは力業で愚直に解いた

 

  • Q29.[Crypto] Common World
    1. 公開鍵暗号で使われているRSA暗号で、Nが共通(問題分とHISTのNが同じとな!)かつ「同じ平分を暗号化」している時にCommon Modulus Attackという攻撃ができる。。。らしい。。。(゜-゜)
      ※問題文とHISTが「同じ暗号文」を暗号化しているとは問題文にも記載されていなかったので分からなかったのだ。。。まあ、分かったところで解けはしないけどね。。。
    2. https://gist.github.com/horoama/688c94fe629a321284c2b4706c75be98#file-common_modulus_attack-py-L9
      上記からソースを拝借して自分の環境で実行できるようにちょっとコードを
      お手入れした

      • import gmpy を import gmpy2 に変更
      • あとはprintにカッコ()をつけてあげる
      • コマンドで『sudo apt -y install python3-dev』を実行
      • ※gcd(a,b)・・・整数a,bの最大公約数を表す
    3. あとはpyのコードを実行してあげるとフラグがゲットできた
    4. んだけど、下記のサイトでは別の解き方「カーマイケルの定理」でやってる方がいたので後で確認しようね自分よ
      https://partender810.hatenablog.com/entry/2021/05/30/132145

 

初心者が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が実行できたのです。。。

 

以上でござります。。。

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

CpawCTFにアクセスしたら①「SignUp」でアカウント登録し②「Login」でスタート!

 

  • [Misc] Test Problem
    1. 安定のコピペ

 

  • Q6.[Crypto] Classical Cipher
    1. 「シーザー暗号」でググって適当なサイトにコピペ

 

  • Q7.[Reversing] Can you execute ?
    1. 問題のファイルをダウンロード(DL)する
    2. Ubuntuでファイル形式を調べるコマンド『file 'ファイルパス'』を実行
    3. 実行結果「ELF 64-bit LSB executable」の「ELF」から、DLしたのはバイナリファイルだと分かる
    4. Ubuntuでバイナリファイルはターミナル直で実行可能。『'ファイルパス'』で実行する
    5. 実行権限がない(「許可がありません」)と言われるので『chmod 777 'ファイルパス'』で全権つけて再実行
    6. 答え出てきて嬉しい~(*´ω`*)~

 

  • Q8.[Misc] Can you open this file ?
    1. ファイルをDLする
    2. DLフォルダを開いたときから既にUbuntuが起動できるアプリケーションを選んでるけどまあ一応コマンド『file "ファイルパス"』を実行する
    3. Documentが開けるアプリで開いてフラグげっちゅ

 

  • Q9.[Web] HTML Page
    1. 指定されたWebサイトを表示する
    2. 表示されたページ上で「右クリック>ページのソースを表示(V)」を実行する
    3. フラグが真ん中あたりにデデーン!と表示されてるのでコピペバーン!

 

  • Q10.[Forensics] River
    1. DLした画像をダブルクリックで開く(=「画像ビューア」で開く)
    2. 「三(ハンバーガーマーク)>画像のプロパティ(R)>詳細を表示>GPSデータ」にある北緯軽度を調べるのだがこれが難しかった
    3. スマホアプリの「Geographica」の「 三>ツール>検索」に数字を突っ込んで解決!Geographicaってすげーな(*'▽')!

 

  • Q11.[Network]pcap
    1. とりまwiresharkをインストールする。コマンド『sudo apt install wireshark』を実行
    2. DLしたpcapファイルをダブルクリックで起動(wiresharkで勝手に起動してくれた)
    3. 16進数の右隣に並んだASCIIコードの文字列にフラグがいた

 

  • Q12.[Crypto]HashHashHash!
    1. ググれと書かれているのでググる。検索結果トップに表示された「What is a SHA-1 hash?」で元の文字列をReverseしてくれた

 

  • Q14.[PPC]並べ替えろ!
    1. C言語のqsort使って降順に並べ替えたけど(Cでどうしても書きたい気分だったのだ)、やっぱPythonで書けばよかったと後悔(´・ω・`)

 

 

以上!!!はい、では次いってみよ~

VirtualBoxでテキストファイルの保存に失敗(Text file busy)する

VirtualBoxで共有フォルダーに格納したテキストファイルを上書き保存するとエラー「一時ファイルの名前更新中にエラーが発生しました。テキストファイルがビジー状態です。」が表示され失敗する。

(英語なら「Unexpected error: Error renaming temporary file: Text file busy」)

 

回避策としては、

テキストファイルを開いて「編集>設定>ファイル>「~」接頭辞を付けてコピーを作成する」にチェックを入れる。
(ゲストOSによって設定の場所は若干異なるみたい。参考にした動画の中ではテキストファイルを開いて「ハンバーガーマーク>Preference>Editer>Create a backup copy of file before saving」にチェックを入れてる。)

 

設定を変更したら上書き保存をする。エラー画面が表示されるので閉じて2回目の上書き保存をする。2回目で保存が完了してる。

(上書き保存すると余計なファイル「ファイル名+~」ができてしまうので、作業の後でいつも削除してる。)

 

参考は以下

www.youtube.com

 

とりあえずはこれで凌ぐ…

pingで「一般エラー。」

ネットに繋がってサイトも表示できるのになぜかデフォルトゲートウェイpingを送ると「一般エラー。」が表示される。

 

VPNの「設定 > 詳細設定 > LAN上の不可視性」を「オフ」にするとちゃんと結果が表示されるようになった。

 

参考は下記

superuser.com