復習 ここはどこ?
SECCON 2014 online予選の復習 その2。
フォレンジックスの100点問題です。
ここはどこ?
という問題文と、ファイルが1つ。
[bash]
$ file Forensicist.dat
Forensicist.dat: RFC 822 mail text
[/bash]
ファイルの中身はどうやらメール形式のようなのでThunderbirdとかのメールソフトに読ませます。
メールの本文に回答の形式、あと添付ファイルがついています。
添付ファイルを保存してファイル形式の確認。
[bash]
$ file panda
panda: TIFF image data, little-endian
[/bash]
イメージファイルであることと「ここはどこ?」という問題文から画像の詳細情報を調べればおそらくGPS情報とかあるだろう、って推測できました。
実際にGPS情報が付加されていて、それをGoogleMapで検索かけると
「TAIPEI ZOO」と出てきました。
しかし、これを入力しても正解ではなく、
「Taipei Zoo」
と入力して正解となりました。
Mapだと「TAIPEI ZOO」でしたけど、Street Viewで見ると「Taipei
Zoo」だったんですよね…。
何はともあれ解けて良かったです。
メールソフトを使わないで
なんとなくやってみます。
普段はGmailで、D&Dしても添付ファイル取れなかったので。
頭の20行ほど読んでみます。
[bash]
$ nkf -w Forensicist.dat | head -n 20
Received: (qmail 32744 invoked from network); 02 Feb 2012 02:02:02
-0000
From: hogehoge@example.com
Content-Type: multipart/mixed; boundary="0123456789_=_0123456789"
Date: Fri, 02 Feb 2012 02:02:02 +0000
Subject: ここはどこ
To: fugafuga@example.com
–0123456789_=_0123456789
Content-Type: text/plain;
charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
答: ○○○○○○ ○○○
–0123456789_=_0123456789
Content-Type: application/octet-stream;
name="panda"
Content-Transfer-Encoding: base64
Content-ID: <panda.tif@0123456789.ABCDEFG>
[/bash]
ってことでメール本文は読めました。
問題は添付ファイルな部分です。
添付ファイルjpegでしたのでバイナリですし、BASE64エンコードされています。
lessとかで見ても下の画像のようになります。
{.alignnone
.size-medium .wp-image-1035 width=“226” height=“300”
sizes="(max-width: 226px) 100vw, 226px"
srcset=“https://ie.u-ryukyu.ac.jp/e095708/files/2014/01/seccon2014_Forensic100_2-226x300.png 226w, https://ie.u-ryukyu.ac.jp/e095708/files/2014/01/seccon2014_Forensic100_2-680x900.png 680w, https://ie.u-ryukyu.ac.jp/e095708/files/2014/01/seccon2014_Forensic100_2.png 898w”}
つまりやりたいことは、
・BASE64エンコードされた部分を抜き出して
・1行にして
・デコードする
という3つです。
[bash]
$ ( cat Forensicist.back | tr -d "\r" | awk -v RS=""
‘NR==5 {print}’ | tr -d "\n" && echo ) > Forensicist.base64
$ base64 -d Forensicist.base64 > Forensicist.jpg
$ file Forensicist.jpg
forensic.jpg: TIFF image data, little-endian
[/bash]
odで見てたら改行コードが0x0d0aだったからちょっと引っかかりましたけど…。
あと最後のechoは要らないですね。
添付ファイルの取得までできました。
あとは、疲れたのでやっぱりプレビュー使ってやりましたw
http://www2.airnet.ne.jp/~kenshi/exif.html
http://photo.stackexchange.com/questions/27719/what-does-gpsinfoifdpointer-5438-mean
とか見ながら粘れば解けるかも?