iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
Security

picoCTF系列 第 12

[Day 12] CanYouSee

  • 分享至 

  • xImage
  •  

看到題目和提示,知道這題和圖片還有隱藏的內容有關。
https://ithelp.ithome.com.tw/upload/images/20240817/20168342wbaceEV1HP.png
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

看過一些資料後,找不太到什麼不對的地方,於是我打開相片,但也沒發現什麼奇怪之處。
https://ithelp.ithome.com.tw/upload/images/20240817/20168342yoUNNed8xl.png

於是我使用 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 剪取所需要的部分。


上一篇
[Day 11] interencdec
下一篇
[Day 13] FindAndOpen
系列文
picoCTF30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言