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

picoCTF #Forensics - Blast from the past

Last updated at Posted at 2024-10-26

■問題
The judge for these pictures is a real fan of antiques. Can you age this photo to the specifications? Set the timestamps on this picture to 1970:01:01 00:00:00.001+00:00 with as much precision as possible for each timestamp. In this example, +00:00 is a timezone adjustment. Any timezone is acceptable as long as the time is equivalent. As an example, this timestamp is acceptable as well: 1969:12:31 19:00:00.001-05:00. For timestamps without a timezone adjustment, put them in GMT time (+00:00). The checker program provides the timestamp needed for each. Use this picture.

Additional details will be available after launching your challenge instance.

「これらの写真の審査員はアンティークの大ファンです。この写真の日付を指定された年齢に設定できますか?すべてのタイムスタンプを1970年01月01日 00:00:00.001+00:00に設定し、できるだけ精密に合わせてください。この例での+00:00はタイムゾーンの調整です。どのタイムゾーンでも、その時間と等価であれば受け入れられます。例えば、1969年12月31日 19:00:00.001-05:00も許容されるタイムスタンプです。タイムゾーン調整のないタイムスタンプは、GMT時間(+00:00)にしてください。必要なタイムスタンプは、チェッカープログラムで提供されます。この写真を使用してください。

追加の詳細は、チャレンジインスタンスを開始した後に表示されます。

■解き方

①画像をダウンロードする

②画像のメタデータをexiftoolコマンドで確認する
image.png
image.png
・Create Date
・Date/Time Original
・Modify Date
・Time Stamp
上記4つを確認

③Create Date、Modify Date、Modify Dateの3つの時間を1970年01月01日 00:00:00.001+00:00に変更する。
※この時点ではTime Stampの時間変更は困難
image.png
※参考
AllDatesオプションにDateTimeOriginal、CreateDate、ModifyDateが含まれている
~DateTimeOriginal~
意味: 画像が「撮影」された日時を表す。
~CreateDate~
意味: 画像ファイルが「作成」された日時を表す。
~ModifyDate~
意味: 画像ファイルが「最後に編集」された日時を表す。

SubSec(サブセカンド)フィールドは、Exifメタデータの一部で、秒以下の微細な時間(ミリ秒やマイクロ秒)を記録するためのフィールド

④変更後の画像を一度送信する。
image.png
image.png

⑤Time Stampの時間変更が必要であることが④で確認できたため、
変更するための情報を収集する。

⑥Stringsコマンドを使用してバイナリデータを確認
image.png
確認した結果からUNIXタイムスタンプであることが判明
※参考
UNIXタイムスタンプとは
UNIX系のシステムで使用される日付と時刻を表す形式で、「1970年1月1日00:00:00 UTC(協定世界時)」からの経過秒数で表現される。この「1970年1月1日00:00:00 UTC」をUNIXエポックと呼び、UNIXタイムスタンプはエポックからの経過秒数を整数値で示している。
今回の問題はUNIXエポックの時間に変更させようとしていることがわかる。

⑦バイナリエディタ等でUNIXタイムスタンプの値を、
1700513181420から0000000000001に変更する。
※すべて0にするとフラグが取得できない。
※バイナリエディタはImHexを使用
image.png
image.png
※ctrl+Fで1700513181420を検索し、0000000000001に変更
image.png

⑧画像を再度送信すると、フラグを取得できる
image.png

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