看到題目和提示,知道這題和圖片還有隱藏的內容有關。
hint 1:How can you view the information about the picture?
hint 2:If something isn't in the expected form, maybe it deserves attention?
下載題目給的檔案,並且解壓縮,我們得到 jpg檔案。
$ ls
unknown.zip
$ unzip unknown.zip
Archive: unknown.zip
inflating: ukn_reality.jpg
$ ls
ukn_reality.jpg unknown.zip
用 file
初步檢查,確認 jpg 檔案的一些內容。 這裡可以看到, jpg 和 jpeg 檔案是相同的。會有 JPG 檔的原因 ,是因為早期的Windows 版本需要在檔案名稱中採用三個字母的副檔名。
$ file ukn_reality.jpg
ukn_reality.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, baseline, precision 8, 4308x2875, components 3
看過一些資料後,找不太到什麼不對的地方,於是我打開相片,但也沒發現什麼奇怪之處。
於是我使用 exiftool
指令,打算查看更多相片資料,底下是 exiftool
的一些用法。
EXIFTOOL(1p) User Contributed Perl Documentation EXIFTOOL(1p)
NAME
exiftool - Read and write meta information in files
SYNOPSIS
Reading
exiftool [OPTIONS] [-TAG...] [--TAG...] FILE...
Writing
exiftool [OPTIONS] -TAG[+-<]=[VALUE]... FILE...
Copying
exiftool [OPTIONS] -tagsFromFile SRCFILE [-[DSTTAG<]SRCTAG...] FILE...
Other
exiftool [ -ver | -list[w|f|r|wf|g[NUM]|d|x] ]
For specific examples, see the EXAMPLES sections below.
This documentation is displayed if exiftool is run without an input FILE when one is expected.
在使用 exiftool
指令後,能夠發現在 URL 的地方有一串奇怪的字串。因為 base64 是由 “A-Z , a-z, 0-9, =, +, / ” 組成,觀察字串,發現符合規則,所以我們可以猜測是 base64 加密過後的字串。
$ exiftool ukn_reality.jpg
ExifTool Version Number : 12.40
File Name : ukn_reality.jpg
Directory : .
File Size : 2.2 MiB
File Modification Date/Time : 2024:02:15 22:40:14+00:00
File Access Date/Time : 2024:08:01 16:11:23+00:00
File Inode Change Date/Time : 2024:08:01 16:10:12+00:00
File Permissions : -rw-r--r--
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
JFIF Version : 1.01
Resolution Unit : inches
X Resolution : 72
Y Resolution : 72
XMP Toolkit : Image::ExifTool 11.88
Attribution URL : cGljb0NURntNRTc0RDQ3QV9ISUREM05fZGVjYTA2ZmJ9Cg==
Image Width : 4308
Image Height : 2875
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Image Size : 4308x2875
Megapixels : 12.4
於是我們使用指令 base64 -decode
解碼,就可得到 flag。當然,base64 -decode
指令也可以改成 base64 -d
。
$ exiftool ukn_reality.jpg | grep 'Attribution' | cut -d ':' -f2 | cut -d ' ' -f2
cGljb0NURntNRTc0RDQ3QV9ISUREM05fZGVjYTA2ZmJ9Cg==
$ echo 'cGljb0NURntNRTc0RDQ3QV9ISUREM05fZGVjYTA2ZmJ9Cg==' | base64 --decode
picoCTF{ME74D47A_HIDD3N_deca06fb}
而上述指令中, exiftool ukn_reality.jpg | grep 'Attribution'
的意思是,從名為 ukn_reality.jpg
的圖片文件中提取包含 "Attribution" 字段。| cut -d ':' -f2| cut -d ' ' -f2
中,第一個 cut 是使用 cut
命令按冒號(:
)分隔,並選取第二個字段(即冒號後面的部分)。第二個 cut 是再次使用 cut
命令將字串以空格分隔,並選取第二個字段(即第一個空格後面的部分)。
小結:
學習到可以使用 exiftool
查看更多資訊,也學會使用 cut 剪取所需要的部分。