3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CTF初心者によるCpawCTF Write Up ~Level 1~

Posted at

CTFをやってみる

CTFとは、Capture The Flag の略でサイバーセキュリティのコンテストみたいなもの。プログラムやサーバの脆弱性を突いて、flagと呼ばれる回答を盗むことが目的。常設型CTFもあって、今回はCTF登竜門とも呼ばれるCpawCTFをやってみた。

Write Upってなに?

Write Upは自分が行った解法などを紹介することの総称。本稿では初心者が書いてみた。
今回はCpawCTFのLevel 1 まで

Q6.[Crypto] Classical Cipher

シーザー暗号を解読する問題。
適当にシーザー暗号の変換サイトを使ったらできた(https://dencode.com/ja/cipher/caesar)
暗号文: fsdz{Fdhvdu_flskhu_lv_fodvvlfdo_flskhu}
解読文: cpaw{Caesar_cipher_is_classical_cipher}
シフトは -3だったみたい

Q7.[Reversing] Can you execute ?

拡張子がないファイルの実行問題。
問題ファイル: exec_me をkali linuxでファイル情報を見てみる

$ file exec_me 
exec_me: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=663a3e0e5a079fddd0de92474688cd6812d3b550, not stripped

どうやらELFという形式らしい。しらべてみるとExecutable and Linking Formatの略称で標準バイナリ形式だということがわかった。
実行した結果がこちら

$ ./exec_me 
cpaw{Do_you_know_ELF_file?}

Q8.[Misc] Can you open this file ?

またもや拡張子のないファイルの問題
問題ファイル: open_me

$ file open_me                            
open_me: Composite Document File V2 Document, Little Endian, Os: Windows, Version 10.0, Code page: 932, Author: v, Template: Normal.dotm, Last Saved By: v, Revision Number: 1, Name of Creating Application: Microsoft Office Word, Total Editing Time: 28:00, Create Time/Date: Mon Oct 12 05:27:00 2015, Last Saved Time/Date: Mon Oct 12 05:55:00 2015, Number of Pages: 1, Number of Words: 3, Number of Characters: 23, Security: 0

Application: Microsoft Office Word の記載が見つかった。
Wordを使ってファイルを展開したら良さそうだ。
だが、kali linuxにはWordがないので代わりにLibreofficeを使う。

$ sudo apt-get install libreiffice

だがしかし、libreofficeが起動しなかった。原因がわからないので、ChatGPTに聞いた。そしたら、Virtual Boxの設定でリモートディスプレイの有効化をしたら良いらしい。

image.png

サーバーの有効化にチェックをいれた。
そしてkali linuxをシャットダウンして起動しなおす

$ sudo poweroff

そのあと無事にLibreofficeがうまく起動でき、open_meを開いた。
そこにはflagがあった。

image.png

Q9.[Web] HTML Page

Webページにアクセスしてflagを探す問題。
Webページ: http://q9.ctf.cpaw.site
簡素なHTMLのみで記述されたWebページだった。
Chromeの機能でソースコードを見てみることにした。
右クリック→ページのソースを表示
10行目にflag is cpaw{9216ddf84851f15a46662eb04759d2bebacac666}との記載が見つかる。
これがflagだった。

Q10.[Forensics] River

画像ファイルのExif情報から緯度経度を調べて川の名前を特定する問題
FLAGの形式は、"cpaw{river_name}"
例:隅田川 → cpaw{sumidagawa}
とのこと。

exiftoolを使って詳細なExif情報を見てみる

$ sudo apt-get install libimage-exiftool-perl

インストールが終わったら使ってみる。

$ exiftool -gpslatitude -gpslongitude river.jpg 
GPS Latitude                    : 31 deg 35' 2.76" N
GPS Longitude                   : 130 deg 32' 51.73" E

調べた情報をもとにGoogle Mapで緯度経度を調べる。

image.png

近くにぽい川が流れていた。
どうやら甲突は "こうつきがわ" と読むらしい
wikipedia参照 (https://ja.wikipedia.org/wiki/%E7%94%B2%E7%AA%81%E5%B7%9D)
つまりflagは cpaw{koutsukigawa} となった。(ヘボン式ローマ字)

Q11.[Network]pcap

pcapファイルを開いて調べる問題。
kali linuxではWire Sharkがプリインストールされているので、即座にファイルを開ける。

image.png

開いてみると、図の右下あたりにflagが埋め込まれていた。
cpaw{gochi_usa_kami}

Q12.[Crypto]HashHashHash!

ハッシュ値をレインボーテーブル攻撃で復号する問題。e4c6bced9edff99746401bd077afa92860f83de3 をdecryptしてみる。
Googleで適当に検索したサイトでチャレンジした(https://hashes.com/en/decrypt/hash)

image.png

FLAGの形式は、"cpaw{ハッシュを戻した値}" なので
cpaw{Shal}

Q14.[PPC]並べ替えろ!

与えられた配列の中身を降順にソートして、カンマ区切りを消して、そのまま連結させてflagにする問題。
pythonでコードを書く

original = [15,1,93,52,66,31,87,0,42,77,46,24,99,10,19,36,27,4,58,76,2,81,50,102,33,94,20,14,80,82,49,41,12,143,121,7,111,100,60,55,108,34,150,103,109,130,25,54,57,159,136,110,3,167,119,72,18,151,105,171,160,144,85,201,193,188,190,146,210,211,63,207]

original.sort(reverse=True)
#print(original)

ans = "".join(map(str, original))
print(f"cpaw{{{ans}}}")

map関数でリスト内をすべてstrに変更するとjoin関数で結合できるようになる。

おわりに

きちんとしたCTFを解こうと思ったのは今日が初めてだった。ついでに記事に残してみようと思って解いた次第です。
全問解いた時間は記事を書く時間と並行して4時間くらい。そのうちツールのインストールや環境構築に使った時間が大半だった。(なんせ新品のPCで取り掛かったもんで...)
拡張子のないファイルの問題が面白かった。ファイルの種類を覗くことって今までなかったな。
またCTFやろ。

3
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?