åå ã¯ãpicoCTF ã® picoCTF 2024 ã®ãã¡ãWeb Exploitation ããã£ã¦ã¿ã¾ãããå
¨6åã®ãã¡ãæå¾ã® 2åã¯è§£ãã¾ããã§ããã
ä»åã¯ãå¼ãç¶ããpicoCTF ã® picoCTF 2024 ã®ãã¡ãForensics ã¨ããã«ãã´ãªã®å
¨8åããã£ã¦ããããã¨æãã¾ããEasy ã 4åãMedium ã 4åã§ãã
ããã§ã¯ããã£ã¦ããã¾ãã
ã¯ããã«
ãã»ãã¥ãªãã£ãã®è¨äºä¸è¦§ã§ããè¯ãã£ããåèã«ãã¦ãã ããã
ã»ãã¥ãªãã£ã®è¨äºä¸è¦§
picoCTF ã®å
¬å¼ãµã¤ãã¯ä»¥ä¸ã§ããè±èªã®ãµã¤ãã§ãããã·ã³ãã«ã§åãããããã®ã§å°ããã«é²ãããã¨ãã§ãã¾ãã
picoctf.com
ããã§ã¯ããã£ã¦ããã¾ãã
picoCTF 2024ï¼Forensics
ãã¤ã³ãã®ä½ãé ã«ãã£ã¦ããã¾ãã
Scan Surpriseï¼50ãã¤ã³ãï¼
Easy ã®åé¡ã§ããZIPãã¡ã¤ã«ã1ã¤ï¼challenge.zipï¼ãã¦ã³ãã¼ãã§ãã¾ããã¾ãããµã¼ãï¼ã¤ã³ã¹ã¿ã³ã¹ï¼ãèµ·åãããã¨ãåºæ¥ãããã§ãã
解åããã¨ãPNGãã¡ã¤ã«ï¼flag.pngï¼ãå¾ããã¾ããéãã¦ã¿ãã¨ãQRã³ã¼ãã®ããã§ããã¨ãããããã¹ãã㧠QRã³ã¼ããèªã¿åã£ã¦ã¿ã¾ãããã©ã°ã表示ããã¾ããããã®ã¾ã¾ã¹ããã§ãã°ã¤ã³ãã¦ãã©ã°ãæåºã§ãã¾ããã
ãµã¼ãã¯ãªãã ã£ããã§ããããï¼ç¬ï¼ã
Verifyï¼50ãã¤ã³ãï¼
Easy ã®åé¡ã§ããZIPãã¡ã¤ã«ã1ã¤ï¼challenge.zipï¼ãã¦ã³ãã¼ãã§ãã¾ããã¾ãããµã¼ãï¼ã¤ã³ã¹ã¿ã³ã¹ï¼ãèµ·åãããã¨ãåºæ¥ãããã§ãã
解åããã¨ãSHA256 ã®ãã§ãã¯ãµã ãæ¸ããããã¡ã¤ã«ã¨å¾©å·ç¨ã®ã·ã§ã«ã¹ã¯ãªãããããã¨ã301åã®ãã¡ã¤ã«ãããã¾ãããã®ä¸ãããã§ãã¯ãµã ãä¸è´ãããã®ãæ¢ãã¨ãããã¨ã®ããã§ãã
ã¾ãã¯ãSHA256 ãå
¨ãã¡ã¤ã«ã«å¯¾ãã¦è¨ç®ãã¾ããããã¹ããã¡ã¤ã«ã«ä¿åãã¦ä¸è´ãããã®ãæ¢ãã¾ããè¦ã¤ããã¾ããï¼451fd69bï¼ã
$ find files/ -type f | xargs sha256sum > sha256.txt
次ã¯ããã®ãã¡ã¤ã«ã復å·ãã¾ããã·ã§ã«ã¹ã¯ãªããã¯ããã¹ãåºå®ããã¦ããã®ã§ãç´æ¥ OpenSSL ã®ã³ãã³ããå®è¡ãã¾ãããã©ã°ã表示ããã¾ããã
$ openssl enc -d -aes-256-cbc -pbkdf2 -iter 100000 -salt -in 451fd69b -k picoCTF
picoCTF{trust_but_verify_451fd69b}
ä»åããµã¼ãã¯ä½¿ç¨ãã¾ããã§ããã
CanYouSeeï¼100ãã¤ã³ãï¼
Easy ã®åé¡ã§ããZIPãã¡ã¤ã«ã1ã¤ï¼unknown.zipï¼ãã¦ã³ãã¼ãã§ãã¾ãã
解åããã¨ãJPGãã¡ã¤ã«ï¼ukn_reality.jpgï¼ãå¾ããã¾ããéãã¦ã¿ã¾ããããããã¨è¦ã¦ããã©ã°ããããã®ã¯ããã¾ããã
æè¿å
¥æãããããã¿ã¿ããªã±ã¼ã³ã使ã£ã¦ã¿ã¾ããYARAã«ã¼ã«ã§ã¹ãã£ã³ã¨ããã®ãã¯ãªãã¯ãã¾ããukn_reality.jpg ã対象ã¨ãã¦ã¹ãã£ã³éå§ãã¾ããããã«çµæãåºã¦ãpicoCTF ã®ãã©ã°æ
å ±ã ãªãã»ãã 0x162 ã«ãããã¨åºã¾ããããããã§ãã
ãã¤ããªã¨ãã£ã¿ã§éãã¾ãã0x162 ã®ä½ç½®ã«ã¯ãBase64 ã£ã½ã ASCIIã³ã¼ãã並ãã§ãã¾ãããã³ã¼ãããã¨ããã©ã°ã表示ããã¾ããã
$ echo -n 'cGljb0NURntNRTc0RDQ3QV9ISUREM05fYTZkZjhkYjh9Cg==' | base64 -d
picoCTF{ME74D47A_HIDD3N_a6df8db8}
Secret of the Polyglotï¼100ãã¤ã³ãï¼
Easy ã®åé¡ã§ãã1ã¤ã®ãã¡ã¤ã«ï¼flag2of2-final.pdfï¼ãã¦ã³ãã¼ãã§ãã¾ãã
æ¬å½ã« PDFãã¡ã¤ã«ãªãã§ããããã確èªãã¾ããPNGãã¡ã¤ã«ã§ããã
$ file flag2of2-final.pdf
flag2of2-final.pdf: PNG image data, 50 x 50, 8-bit/color RGBA, non-interlaced
æ¡å¼µåãå¤æ´ãã¦éãã¦ã¿ã¾ããpicoCTF{f1u3n7_
ãæ¸ããã¦ã¾ãããæ®ãã®ãã©ã°ãæ¢ãå¿
è¦ãããã¾ãã
ãã¤ããªã¨ãã£ã¿ã§éãã¦ã¿ã¾ããéä¸ãã ASCIIã³ã¼ããããããæ¸ããã¦ãã¾ãããããããããã®ã¯è¦ã¤ããã¾ãããããã¿ã¿ããªã±ã¼ã³ã® YARAã«ã¼ã«ã§ã¹ãã£ã³ãã¾ãã
0x69C ããæªããããã§ãããxpacket beginãã¨ããããã«æ¸ããã¦ãã¾ããæ¤ç´¢ããã¨ãPDF ã®åãè¾¼ã¿æ
å ±ã¨ã®ãã¨ã§ããæ½åºãã¦ã¿ã¾ããããä½ã XMP ã¨ããããã©ã¼ããããããã§ãã
ãããããã£ã¦ããã¡ã«ãChrome ã«æ¾ãæããããæ®ãã®ãã©ã°ã表示ããã¾ãããå°ã£ãã¨ãã¯ãChrome ã«èªã¾ããã°ããããã§ãï¼ç¬ï¼ã
Mob psychoï¼200ãã¤ã³ãï¼
Medium ã®åé¡ã§ãã1ã¤ã®ãã¡ã¤ã«ï¼mobpsycho.apkï¼ãã¦ã³ãã¼ãã§ãã¾ãã
ç°¡åã«èª¿ã¹ã¦ã¿ã¾ãã
$ file Mob\ psycho/mobpsycho.apk
Mob psycho/mobpsycho.apk: Zip archive data, at least v1.0 to extract, compression method=store
apkãã¡ã¤ã«ã¯ ZIP ã§å§ç¸®ããã¦ãã¾ããã¾ãã¯ã解åãã¾ããæ®éã® apkãã¡ã¤ã«ã®ããã§ãã
ä»åããã¾ãã¯ãããã¿ã¿ããªã±ã¼ã³ã® YARAã«ã¼ã«ã§ã¹ãã£ã³ãã¾ãã
解åãããã¡ã¤ã«ã® 1ã¤ãæå®ãã¦ãã対象ãã¡ã¤ã«ã®ãããã©ã«ããã¨ã¹ãã£ã³ãã¨ããµããã©ã«ããã¹ãã£ã³ãã«ãã§ãã¯ãå
¥ãã¦ãã¹ãã£ã³éå§ãã¯ãªãã¯ãã¾ãã
æåã«ãããããã®ã¯ãclasses.dex ã§ãã0x6C9CBF ã®ä½ç½®ã®ããã§ããstrings ã§ã¯æ½åºã§ãã¾ãããstringsåè´æ¡ä»¶ã¯ãpicoCTF_Flag_Text_Padding_Reverse ã¨ãããã®ã§ããã«ã¼ã«ã¯ã以ä¸ã§ãã
$picoCTF_Flag_Text_Padding_Reverse = {7B [1-32] 46 [1-32] 54 [1-32] 43 [1-32] 6F [1-32] 63 [1-32] 69 [1-32] 70} //picoCTF2022
picoCTF{
ã ASCIIã³ã¼ãã«ãã¾ãã
$ python -c 'print([f"0x{ord(cc):02X}" for cc in list("picoCTF{")])'
['0x70', '0x69', '0x63', '0x6F', '0x43', '0x54', '0x46', '0x7B']
ããã«ããããéé ã«ãã¾ããã¤ã¾ããpicoCTF{
ãéé ã«ãã¦ãããã«ã1æåãã¤ééã 1byteãã32byte空ãã¦ããã¨ãããã¨ã ã¨æãã¾ãã
$ python -c 'print(list(reversed([f"0x{ord(cc):02X}" for cc in list("picoCTF{")])))'
['0x7B', '0x46', '0x54', '0x43', '0x6F', '0x63', '0x69', '0x70']
ãªãã»ã©ãã§ããããããã«ãä¸å®ã®ééã§ããªãã®ã§ããã¾ãã¾ãªæ°ããã¾ãã
次ã«ãããããã®ããres/color/flag.txt ã§ããååãããã¦æªããã§ãï¼ç¬ï¼ããã¡ã¤ã«ãéãã¨ã7069636f4354467b6178386d433052553676655f4e5838356c346178386d436c5f38356462643231357d
ãæ¸ããã¦ã¾ããã
ãã¨ã¯ãASCIIã³ã¼ãã«ç´ãã ãã§ãã
$ python -c 'hh="7069636f4354467b6178386d433052553676655f4e5838356c346178386d436c5f38356462643231357d"; print("".join([chr(int(hh[ii] + hh[ii+1], base=16)) for ii in range(0, len(hh),
2)]))'
picoCTF{ax8mC0RU6ve_NX85l4ax8mCl_85dbd215}
apkãã¡ã¤ã«ã®ãã³ã³ãã¤ã«
ã¡ãã£ã¨å¯ãéãã¦ãapkãã¡ã¤ã«ããã³ã³ãã¤ã«ããããã¦ãã®ã§ã以ä¸ã¯ãåèã§ãã
ãã³ã³ãã¤ã«ãã¦ã¿ã¾ããdex2jar 㨠JD-GUI ã使ãã¾ãã
以ä¸ã® Releases ã«ãã dex2jar ã® v2.4 ã使ãã¾ãã
github.com
解åãã¦ã以ä¸ãå®è¡ãã¾ããclasses-dex2jar.jar ãå¾ããã¾ããã
$ ~/Downloads/dex-tools-v2.4/d2j-dex2jar.sh classes.dex
dex2jar classes.dex -> ./classes-dex2jar.jar
以ä¸ã® Releases ã«ãã JD-GUI 1.6.6 ã使ãã¾ãã
github.com
解åããã¨ãjd-gui.exe ãããã®ã§ããã«ã¯ãªãã¯ãã¦èµ·åãã¾ãã
classes-dex2jar.jar ãéãã¾ãããã³ã³ãã¤ã«ããã½ã¼ã¹ã³ã¼ãã表示ããã¾ãã
ãã£ã¨ç°¡åã«ãapk ãç´æ¥ãã³ã³ãã¤ã«ãã¦è¡¨ç¤ºãã¦ããããã¼ã«ãããã¾ããjadx ã¨ãããã¼ã«ã§ã以ä¸ã«ãªãã¾ãã
以ä¸ã® Releases ã«ãã 1.5.0 ã使ç¨ãã¦ã¿ã¾ããç´æ¥ apk ãæå®ã§ããã®ã§æ¥½ã§ããã
github.com
ãã³ã³ãã¤ã«ã¯åºæ¥ã¾ãããããããã«éãå¤ãã§ããããããããªãã¼ã¹ã¨ã³ã¸ãã¢ãªã³ã°ã®ã«ãã´ãªã§ããªãã§ããã
endianness-v2ï¼300ãã¤ã³ãï¼
Medium ã®åé¡ã§ãã1ã¤ã®ãã¡ã¤ã«ï¼challengefileï¼ãã¦ã³ãã¼ãã§ãã¾ãã
軽ã調ã¹ã¾ãããã¼ãããã ã®ãã¼ã¿ã§ããããã¿ã¿ããªã±ã¼ã³ãåã解æçµæã§ãã
$ file challengefile
challengefile: data
ãã¤ããªã¨ãã£ã¿ã§éãã¦ã¿ã¾ãã4KBå¼±ã®ãã¡ã¤ã«ã§ããã¨ã³ãã£ã¢ã³ã¨ããåé¡åãªã®ã§ãå
é ãã²ã£ããè¿ãã¦ã¿ã¾ãã
E0 FF D8 FF
â FF D8 FF E0
ã«ãªãã¾ããWebæ¤ç´¢ãã¦ã¿ãã¨ããã㯠JPEG ã®å
é ã¨ä¸è´ãããããã§ããã¾ããæ«å°¾ã FF D9
ã§çµãããããããããæºããã¦ãã¾ãã
ã§ã¯ãã¨ã³ãã£ã¢ã³ãå¤æãã Pythonã¹ã¯ãªãããå®è£
ãã¾ãã4byte ã®ã¨ã³ãã£ã¢ã³å¤æã§ãã
import struct
def fread_bin( fpath ):
with open(fpath, 'rb') as ff:
data = ff.read()
return data
def fwrite_bin( fpath, data ):
with open(fpath, 'wb') as ff:
ff.write( data )
def endian( fpath, fpath_out ):
data = fread_bin( fpath )
if len(data) % 4 != 0:
data += b'0' * (4 - len(data) % 4)
assert len(data) % 4 == 0, "fatal"
bret = b''
ii = 0
while ii + 4 <= len(data):
tmp = struct.unpack( '<I', data[ii:ii+4] )
bret += struct.pack( '>I', tmp[0] )
ii += 4
fwrite_bin( fpath_out, bret )
endian( "../picoCTF/picoCTF2024_Forensics/challengefile", "../picoCTF/picoCTF2024_Forensics/challengefile.jpg" )
å®è¡ããã¨ãJPGãã¡ã¤ã«ãåºåããã¾ãã
$ python tmp.py
JPGãã¡ã¤ã«ãéãã¨ãã©ã°ï¼picoCTF{cert!f1Ed_iNd!4n_s0rrY_3nDian_76e05f49}
ï¼ã表示ããã¾ããã
Blast from the pastï¼300ãã¤ã³ãï¼
Medium ã®åé¡ã§ãã1ã¤ã®ç»åãã¡ã¤ã«ï¼original.jpgï¼ãã¦ã³ãã¼ãã§ãã¾ããã¾ãããµã¼ããèµ·åã§ãã¾ãã
ç»åãã¡ã¤ã«ãéãã¦ã¿ãã¨ãé¡ã«å
¥ã£ãçµµãåã£ã¦ãã ãã§ãã
ãã¡ã¤ã«ã®ã¿ã¤ã ã¹ã¿ã³ããå¤æ´ãã¦ã¢ãããã¼ãããã°ããã®ã§ãããããã¨ãããããå¤æ´ãã¦ãªããã¡ã¤ã«ããµã¼ãã«ã¢ãããã¼ããã¦ã¿ã¾ãã
$ nc -w 2 mimas.picoctf.net 59346 < original.jpg
$ nc mimas.picoctf.net 58619
MD5 of your picture:
06783ef2aa4460a3d267002a28ff12c6 test.out
Checking tag 1/7
Looking at IFD0: ModifyDate
Looking for '1970:01:01 00:00:00'
Found: 2023:11:20 15:46:23
Oops! That tag isn't right. Please try again.
Webæ¤ç´¢ã§èª¿ã¹ã¦ã¿ãã¨ãtouchã³ãã³ãã使ããã¨ããæ
å ±ãåºã¦ãã¾ãããã£ã¦ã¿ã¾ãã
$ touch -d "1970/1/1 00:00:00" original.jpg
$ stat original.jpg
File: original.jpg
Size: 2851929 Blocks: 5576 IO Block: 4096 regular file
Device: 0,38 Inode: 189674 Links: 1
Access: (0744/-rwxr--r--) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2024-10-17 21:27:38.861306577 +0900
Modify: 1970-01-01 00:00:00.000000000 +0900
Change: 2024-10-17 21:27:37.757972765 +0900
Birth: 2024-10-17 21:06:18.146412278 +0900
$ nc -w 2 mimas.picoctf.net 59346 < original.jpg
$ nc mimas.picoctf.net 58619
MD5 of your picture:
06783ef2aa4460a3d267002a28ff12c6 test.out
Checking tag 1/7
Looking at IFD0: ModifyDate
Looking for '1970:01:01 00:00:00'
Found: 2023:11:20 15:46:23
Oops! That tag isn't right. Please try again.
+0900
ã¨ãªã£ã¦ããã®ã§ã-9æéã§è¨å®ãã¦ã¿ã¾ãããã¼ãããã¡ã§ããåºåãããå
容ãè¦ãã¨ã2023:11:20 15:46:23
ãè¦ã¤ãã£ãã¨è¨ã£ã¦ãã¾ãã
$ touch -d "1969/12/31 15:00:00" original.jpg
$ stat original.jpg
File: original.jpg
Size: 2851929 Blocks: 5576 IO Block: 4096 regular file
Device: 0,38 Inode: 189674 Links: 1
Access: (0744/-rwxr--r--) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2024-10-17 21:30:00.788033547 +0900
Modify: 1969-12-31 15:00:00.000000000 +0900
Change: 2024-10-17 21:29:59.721366434 +0900
Birth: 2024-10-17 21:06:18.146412278 +0900
$ nc -w 2 mimas.picoctf.net 59346 < original.jpg
$ nc mimas.picoctf.net 58619
MD5 of your picture:
06783ef2aa4460a3d267002a28ff12c6 test.out
Checking tag 1/7
Looking at IFD0: ModifyDate
Looking for '1970:01:01 00:00:00'
Found: 2023:11:20 15:46:23
Oops! That tag isn't right. Please try again.
exiftool ã§è¦ã¦ã¿ã¾ããããã¤ã 2023:11:20 15:46:23
ãããã¾ããã
$ exiftool original.jpg
ExifTool Version Number : 12.57
File Name : original.jpg
Directory : .
File Size : 2.9 MB
File Modification Date/Time : 1969:12:31 15:00:00+09:00
File Access Date/Time : 2024:10:17 21:30:00+09:00
File Inode Change Date/Time : 2024:10:17 21:29:59+09:00
File Permissions : -rwxr--r--
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
Exif Byte Order : Little-endian (Intel, II)
Image Description :
Make : samsung
Camera Model Name : SM-A326U
Orientation : Rotate 90 CW
X Resolution : 72
Y Resolution : 72
Resolution Unit : inches
Software : MediaTek Camera Application
Modify Date : 2023:11:20 15:46:23
Y Cb Cr Positioning : Co-sited
Exposure Time : 1/24
F Number : 1.8
Exposure Program : Program AE
ISO : 500
Sensitivity Type : Unknown
Recommended Exposure Index : 0
Exif Version : 0220
Date/Time Original : 2023:11:20 15:46:23
Create Date : 2023:11:20 15:46:23
Components Configuration : Y, Cb, Cr, -
Shutter Speed Value : 1/24
Aperture Value : 1.9
Brightness Value : 3
Exposure Compensation : 0
Max Aperture Value : 1.8
Metering Mode : Center-weighted average
Light Source : Other
Flash : On, Fired
Focal Length : 4.6 mm
Sub Sec Time : 703
Sub Sec Time Original : 703
Sub Sec Time Digitized : 703
Flashpix Version : 0100
Color Space : sRGB
Exif Image Width : 4000
Exif Image Height : 3000
Interoperability Index : R98 - DCF basic file (sRGB)
Interoperability Version : 0100
Exposure Mode : Auto
White Balance : Auto
Digital Zoom Ratio : 1
Focal Length In 35mm Format : 25 mm
Scene Capture Type : Standard
Compression : JPEG (old-style)
Thumbnail Offset : 1408
Thumbnail Length : 64000
Image Width : 4000
Image Height : 3000
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Time Stamp : 2023:11:21 05:46:21.420+09:00
MCC Data : United States / Guam
Aperture : 1.8
Image Size : 4000x3000
Megapixels : 12.0
Scale Factor To 35 mm Equivalent: 5.4
Shutter Speed : 1/24
Create Date : 2023:11:20 15:46:23.703
Date/Time Original : 2023:11:20 15:46:23.703
Modify Date : 2023:11:20 15:46:23.703
Thumbnail Image : (Binary data 64000 bytes, use -b option to extract)
Circle Of Confusion : 0.006 mm
Field Of View : 71.5 deg
Focal Length : 4.6 mm (35 mm equivalent: 25.0 mm)
Hyperfocal Distance : 2.13 m
Light Value : 4.0
exiftool ã«ã¯ãæ®å½±æå»ãå¤æ´ãããã¨ãåºæ¥ãæ©è½ãããããã§ãããã£ã¦ã¿ã¾ãã
ãã¼ããmsåä½ã§ããã¦ãã¾ã£ãæãã§ããããã
$ exiftool -AllDates='1970:01:01 00:00:00' -overwrite_original original.jpg
1 image files updated
$ exiftool original.jpg
ExifTool Version Number : 12.57
File Name : original.jpg
Directory : .
File Size : 2.9 MB
File Modification Date/Time : 2024:10:17 21:37:11+09:00
File Access Date/Time : 2024:10:17 21:37:12+09:00
File Inode Change Date/Time : 2024:10:17 21:37:11+09:00
File Permissions : -rwxr--r--
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
Exif Byte Order : Little-endian (Intel, II)
Image Description :
Make : samsung
Camera Model Name : SM-A326U
Orientation : Rotate 90 CW
X Resolution : 72
Y Resolution : 72
Resolution Unit : inches
Software : MediaTek Camera Application
Modify Date : 1970:01:01 00:00:00
Y Cb Cr Positioning : Co-sited
Exposure Time : 1/24
F Number : 1.8
Exposure Program : Program AE
ISO : 500
Sensitivity Type : Unknown
Recommended Exposure Index : 0
Exif Version : 0220
Date/Time Original : 1970:01:01 00:00:00
Create Date : 1970:01:01 00:00:00
Components Configuration : Y, Cb, Cr, -
Shutter Speed Value : 1/24
Aperture Value : 1.9
Brightness Value : 3
Exposure Compensation : 0
Max Aperture Value : 1.8
Metering Mode : Center-weighted average
Light Source : Other
Flash : On, Fired
Focal Length : 4.6 mm
Sub Sec Time : 703
Sub Sec Time Original : 703
Sub Sec Time Digitized : 703
Flashpix Version : 0100
Color Space : sRGB
Exif Image Width : 4000
Exif Image Height : 3000
Interoperability Index : R98 - DCF basic file (sRGB)
Interoperability Version : 0100
Exposure Mode : Auto
White Balance : Auto
Digital Zoom Ratio : 1
Focal Length In 35mm Format : 25 mm
Scene Capture Type : Standard
Compression : JPEG (old-style)
Thumbnail Offset : 1124
Thumbnail Length : 64000
Image Width : 4000
Image Height : 3000
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Time Stamp : 2023:11:21 05:46:21.420+09:00
MCC Data : United States / Guam
Aperture : 1.8
Image Size : 4000x3000
Megapixels : 12.0
Scale Factor To 35 mm Equivalent: 5.4
Shutter Speed : 1/24
Create Date : 1970:01:01 00:00:00.703
Date/Time Original : 1970:01:01 00:00:00.703
Modify Date : 1970:01:01 00:00:00.703
Thumbnail Image : (Binary data 64000 bytes, use -b option to extract)
Circle Of Confusion : 0.006 mm
Field Of View : 71.5 deg
Focal Length : 4.6 mm (35 mm equivalent: 25.0 mm)
Hyperfocal Distance : 2.13 m
Light Value : 4.0
$ nc -w 2 mimas.picoctf.net 59346 < original.jpg
$ nc mimas.picoctf.net 58619
MD5 of your picture:
e7537a20fd614f08232eaa16d4f6587a test.out
Checking tag 1/7
Looking at IFD0: ModifyDate
Looking for '1970:01:01 00:00:00'
Found: 1970:01:01 00:00:00
Great job, you got that one!
Checking tag 2/7
Looking at ExifIFD: DateTimeOriginal
Looking for '1970:01:01 00:00:00'
Found: 1970:01:01 00:00:00
Great job, you got that one!
Checking tag 3/7
Looking at ExifIFD: CreateDate
Looking for '1970:01:01 00:00:00'
Found: 1970:01:01 00:00:00
Great job, you got that one!
Checking tag 4/7
Looking at Composite: SubSecCreateDate
Looking for '1970:01:01 00:00:00.001'
Found: 1970:01:01 00:00:00.703
Oops! That tag isn't right. Please try again.
ããããããã¾ããããæå¾ã® 1åãå¤æ´ã§ãã¾ããã
$ nc mimas.picoctf.net 49568
MD5 of your picture:
dfeec95e00a63491611fa7f106a0ebfe test.out
Checking tag 1/7
Looking at IFD0: ModifyDate
Looking for '1970:01:01 00:00:00'
Found: 1970:01:01 00:00:00
Great job, you got that one!
Checking tag 2/7
Looking at ExifIFD: DateTimeOriginal
Looking for '1970:01:01 00:00:00'
Found: 1970:01:01 00:00:00
Great job, you got that one!
Checking tag 3/7
Looking at ExifIFD: CreateDate
Looking for '1970:01:01 00:00:00'
Found: 1970:01:01 00:00:00
Great job, you got that one!
Checking tag 4/7
Looking at Composite: SubSecCreateDate
Looking for '1970:01:01 00:00:00.001'
Found: 1970:01:01 00:00:00.001
Great job, you got that one!
Checking tag 5/7
Looking at Composite: SubSecDateTimeOriginal
Looking for '1970:01:01 00:00:00.001'
Found: 1970:01:01 00:00:00.001
Great job, you got that one!
Checking tag 6/7
Looking at Composite: SubSecModifyDate
Looking for '1970:01:01 00:00:00.001'
Found: 1970:01:01 00:00:00.001
Great job, you got that one!
Checking tag 7/7
Timezones do not have to match, as long as it's the equivalent time.
Looking at Samsung: TimeStamp
Looking for '1970:01:01 00:00:00.001+00:00'
Found: 2023:11:20 20:46:21.420+00:00
Oops! That tag isn't right. Please try again.
Exif ãæ¸ãæãã GUIãã¼ã«ã使ã£ã¦ã¿ã¾ããã1ã¤ã¯ãJExifToolGUI V2.0.2 ã§ãjarãã¡ã¤ã«ã ã£ãã®ã§ãParrotOS ã§ã$ java -jar jExifToolGUI.jar &
ã§èµ·åã§ãã¾ãããããããTimeStamp ãæ¸ãæãããã¨ã¯åºæ¥ã¾ããã§ããããã1ã¤ã¯ãExifToolGUI_X64.exe ã§ããã㯠Windowsã¢ããªã§ããexiftool.exe ã¨ãã CUIããã°ã©ã ã®ã©ããã¼ãããã§ããexiftool.exe ãåããã£ã¬ã¯ããªã«ç½®ãã¦ãExifToolGUI_X64.exe ãããã«ã¯ãªãã¯ã§èµ·åã§ãã¾ãããã¡ãã®æ¹ãçµæçã«ã¯ TimeStamp ãæ¸ãæãããã¨ã¯åºæ¥ã¾ããã§ãããã使ãããããã¼ã«ã§ããã
ã®ãã¢ããã§ããwriteupãè¦ãã¨ããã¤ããªã¨ãã£ã¿ã§æ¸ãæããããã§ãã
ãªãã»ãã 0x2B8228 ããå§ã¾ã£ã¦ãã Image_UTC_Data1700513181420
ãå¤æ´ããã¨ã®ãã¨ã§ããå¤æ´ã§ããªãã£ãæå»ã¯ã2023:11:20 20:46:21.420+00:00
ã§ããä¸ä½ã® 3æåãããªç§ã表ãã¦ããããã§ããã¨ããã¯æéã«ç´ãã¦ã¿ã¾ããä¸è´ãã¾ããã
$ python -c 'import datetime; print(datetime.datetime.fromtimestamp(1700513181))'
2023-11-21 05:46:21
ãã¨ã¯ãLooking for '1970:01:01 00:00:00.001+00:00'
ã«åãããã°ããã®ã§ãã¨ããã¯æé㯠0 ã«ãªããå°æ°ç¹ã 001 ã§ãããã¤ããªã¨ãã£ã¿ã§ç·¨éãã¾ãã
ã§ã¯ãå®è¡ãã¦ã¿ã¾ãã
$ nc -w 2 mimas.picoctf.net 61487 < ../picoCTF/picoCTF2024_Forensics/original.jpg
$ nc mimas.picoctf.net 49568
MD5 of your picture:
a664348eec39335cab61850c7f530b94 test.out
Checking tag 1/7
Looking at IFD0: ModifyDate
Looking for '1970:01:01 00:00:00'
Found: 1970:01:01 00:00:00
Great job, you got that one!
Checking tag 2/7
Looking at ExifIFD: DateTimeOriginal
Looking for '1970:01:01 00:00:00'
Found: 1970:01:01 00:00:00
Great job, you got that one!
Checking tag 3/7
Looking at ExifIFD: CreateDate
Looking for '1970:01:01 00:00:00'
Found: 1970:01:01 00:00:00
Great job, you got that one!
Checking tag 4/7
Looking at Composite: SubSecCreateDate
Looking for '1970:01:01 00:00:00.001'
Found: 1970:01:01 00:00:00.001
Great job, you got that one!
Checking tag 5/7
Looking at Composite: SubSecDateTimeOriginal
Looking for '1970:01:01 00:00:00.001'
Found: 1970:01:01 00:00:00.001
Great job, you got that one!
Checking tag 6/7
Looking at Composite: SubSecModifyDate
Looking for '1970:01:01 00:00:00.001'
Found: 1970:01:01 00:00:00.001
Great job, you got that one!
Checking tag 7/7
Timezones do not have to match, as long as it's the equivalent time.
Looking at Samsung: TimeStamp
Looking for '1970:01:01 00:00:00.001+00:00'
Found: 1970:01:01 00:00:00.001+00:00
Great job, you got that one!
You did it!
picoCTF{71m3_7r4v311ng_p1c7ur3_3e336564}
ããã¡ãã£ã¨ç²ãã足ãã¾ããã§ããã
Dear Diaryï¼400ãã¤ã³ãï¼
Medium ã®åé¡ã§ãã1ã¤ã®ãã£ã¹ã¯ã¤ã¡ã¼ã¸ï¼ï¼disk.flag.img.gzï¼ããã¦ã³ãã¼ãã§ãã¾ãã
軽ã調ã¹ã¾ããæ¬å½ã« gzip ã¿ãããªã®ã§è§£åãã¾ããæ¬å½ã«ãã£ã¹ã¯ã¤ã¡ã¼ã¸ã®ããã§ãã
$ file disk.flag.img.gz
disk.flag.img.gz: gzip compressed data, was "disk.flag.img", last modified: Sat Feb 17 22:59:04 2024, from Unix, original size modulo 2^32 1073741824
$ gzip -d disk.flag.img.gz
$ file disk.flag.img
disk.flag.img: DOS/MBR boot sector; partition 1 : ID=0x83, active, start-CHS (0x0,32,33), end-CHS (0x26,94,56), startsector 2048, 614400 sectors; partition 2 : ID=0x82, start-CHS (0x26,94,57), end-CHS (0x47,1,58), startsector 616448, 524288 sectors; partition 3 : ID=0x83, start-CHS (0x47,1,59), end-CHS (0x82,138,8), startsector 1140736, 956416 sectors
ã¾ãã¯ããã¦ã³ããã¦ã¿ã¾ãã
$ sudo mount disk.flag.img mnt/
mount: /home/user/svn/experiment/picoCTF/picoCTF2024_Forensics/mnt: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.
dmesg(1) may have more information after failed mount system call.
ãã¼ãããã¡ã§ããã以åãWindowsç¨ã®ãã£ã¹ã¯ã¤ã¡ã¼ã¸ã®ãã¼ã«ã®ãFTK Imagerãã¨ãAutospyãã® 2ã¤ã使ãã¾ããããã£ãããªãã§ä½¿ã£ã¦ã¿ã¾ãã
ãFTK Imagerãã®æ¹ã¯ãFile â Add Evidence Item... â Image File 㧠disk.flag.img ãæå®ããã¨ä¸ãè¦ããã¨ãã§ãã¾ãããã¨ã¯ã¹ããã¼ã©ã¼é¢¨ã«è¦ãã¾ãã
é©å½ã«è¦ã¦ã¿ãã¨ãAlpine ã¨ãã OS ã§ãã¦ã¼ã¶ã¯ root ã®ã¿ã§ãroot ã®ãã¼ã ãã£ã¬ã¯ããªãè¦ã¾ããããããããããã®ã¯ããã¾ããã3çªç®ã®ãã¼ãã£ã·ã§ã³ã®ã«ã¼ããã¡ã¤ã«ã·ã¹ãã ã¨æããããã©ã¤ããå
¨ã¦ã¨ã¯ã¹ãã¼ããã¦ãããã¿ã¿ããªã±ã¼ã³ã® YARAã«ã¼ã«ã¹ãã£ã³ã§å
¨æ¢ç´¢ãã¦ã¿ã¾ãããããããããããã¾ãããããã©ã°ã¯è¦å½ããã¾ããã§ããã
ãAutospyãã®æ¹ã¯ãã ãã¶æéããããã¾ãããããã¡ã§ããã
ä»åã®ã¤ã¡ã¼ã¸ã¯ãLinux ãªã®ã§ãã¡ããã¨èª¿ã¹ãã°ãã¦ã³ãã§ããã¨æãã¾ãã
fdiskã³ãã³ãã§è¦ã¦ã¿ã¾ãã3çªç®ã® disk.flag.img3 ã¨ããã®ã ext4 ã®ãã©ã¼ãããã ã£ãã®ã§ãããããã¦ã³ããããã§ãã
ã¡ãã£ã¨èª¿ã¹ã¦ã¿ãã¨ããªãã»ããï¼byteåä½ï¼ãåããã°ãã¦ã³ãã§ããããã§ããStartã»ã¯ã¿ã«512byteããããã ãã§ãã1140736 * 512 = 584056832
$ fdisk -l disk.flag.img
Disk disk.flag.img: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6062d30a
Device Boot Start End Sectors Size Id Type
disk.flag.img1 * 2048 616447 614400 300M 83 Linux
disk.flag.img2 616448 1140735 524288 256M 82 Linux swap / Solaris
disk.flag.img3 1140736 2097151 956416 467M 83 Linux
ãã£ã¦ã¿ã¾ãããã¼ãããã£ããããã·ã§ãããã¹ã¼ãã¼ãããã¯ãèªããªãã¨ããã¨ã©ã¼ã®ããã§ãã
$ sudo mount -t ext4 -o loop,offset=584056832 disk.flag.img mnt/
mount: /home/user/svn/experiment/picoCTF/picoCTF2024_Forensics/mnt: can't read superblock on /dev/loop0.
dmesg(1) may have more information after failed mount system call.
$ dumpe2fs -h disk.flag.img
dumpe2fs 1.47.1-rc2 (01-May-2024)
dumpe2fs: Bad magic number in super-block while trying to open disk.flag.img
Couldn't find valid filesystem superblock.
disk.flag.img contains `DOS/MBR boot sector;
partition 1 : ID=0x83, active, start-CHS (0x0,32,33), end-CHS (0x26,94,56), startsector 2048, 614400 sectors;
partition 2 : ID=0x82, start-CHS (0x26,94,57), end-CHS (0x47,1,58), startsector 616448, 524288 sectors;
partition 3 : ID=0x83, start-CHS (0x47,1,59), end-CHS (0x82,138,8), startsector 1140736, 956416 sectors' data
æåã®ãã¼ãã£ã·ã§ã³ããã¦ã³ããã¦ã¿ã¾ããçµã¿è¾¼ã¿ã¨ãã«ãããããã¼ããã¼ãã£ã·ã§ã³ã§ããããããã¦ã³ãã§ãã¾ããã
$ sudo mount -t ext4 -o loop,offset=1048576 disk.flag.img mnt/
ãããããã¹ã¼ãã¼ãããã¯ãä¿®æ£ãããã©ã¤ããéè¦ã ã¨æãã®ã§ããã¡ã ã¨æãã¾ããã軽ãæ¢ãã¦ã¿ã¾ãããã¯ããä½ããªãããã§ããã¤ãã§ã«ããã¡ãã YARAã«ã¼ã«ã¹ãã£ã³ãã¾ãããããã¡ã§ããã
./System.map-virt:ffffffff8199f380 t __pfx_pirq_pico_get
./System.map-virt:ffffffff8199f390 t pirq_pico_get
./System.map-virt:ffffffff8199f3c0 t __pfx_pirq_pico_set
./System.map-virt:ffffffff8199f3d0 t pirq_pico_set
./System.map-virt:ffffffff82a24cc0 t __pfx_pico_router_probe
./System.map-virt:ffffffff82a24cd0 t pico_router_probe
3çªç®ã®ãã¼ãã£ã·ã§ã³ã®ã¹ã¼ãã¼ãããã¯ãå£ãã¦ãããããªã®ã§ã修復ãããã¨ãæ±ãããã¦ããæ°ããã¾ãããã®ãããã§ãã©ã°ãè¦ã¤ããæ°ããã¾ãã
$ fsck.ext4 disk.flag.img
e2fsck 1.47.1-rc2 (01-May-2024)
ext2fs_open2: Bad magic number in super-block
fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block while trying to open disk.flag.img
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
or
e2fsck -b 32768 <device>
disk.flag.img contains `DOS/MBR boot sector; partition 1 : ID=0x83, active, start-CHS (0x0,32,33), end-CHS (0x26,94,56), startsector 2048, 614400 sectors; partition 2 : ID=0x82, start-CHS (0x26,94,57), end-CHS (0x47,1,58), startsector 616448, 524288 sectors; partition 3 : ID=0x83, start-CHS (0x47,1,59), end-CHS (0x82,138,8), startsector 1140736, 956416 sectors' data
$ mkfs.ext4 -n disk.flag.img
mke2fs 1.47.1-rc2 (01-May-2024)
disk.flag.img contains `DOS/MBR boot sector; partition 1 : ID=0x83, active, start-CHS (0x0,32,33), end-CHS (0x26,94,56), startsector 2048, 614400 sectors; partition 2 : ID=0x82, start-CHS (0x26,94,57), end-CHS (0x47,1,58), startsector 616448, 524288 sectors; partition 3 : ID=0x83, start-CHS (0x47,1,59), end-CHS (0x82,138,8), startsector 1140736, 956416 sectors' data
Proceed anyway? (y,N) y
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 29390527-0466-4886-b948-2ca3d3f01714
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
$ e2fsck -b 32768 disk.flag.img
e2fsck 1.47.1-rc2 (01-May-2024)
e2fsck: Attempt to read block from filesystem resulted in short read while trying to open disk.flag.img
Could this be a zero-length partition?
disk.flag.img ãç´æ¥ãã¤ããªã¨ãã£ã¿ã§è¦ã¾ãã
å
é ã® MBR ãè¦ã¾ãã0x1BE ã®ä½ç½®ãããã¼ãã£ã·ã§ã³ãã¼ãã«ãå§ã¾ãã¾ãã16byteãã¤ã§ãã3ã¤ã«å¤ãå
¥ã£ã¦ãã¾ãã5byteç®ã« ID ãå
¥ã£ã¦ãã¾ãã1çªç®ã¨3çªç®ã¯ 0x83 ãªã®ã§ãEXT2/3/4 ã§ãã2çªç®ã¯ 0x82 ãªã®ã§ã¹ã¯ããé åã§ãã
ã¾ããæ£å¸¸ãª 1çªç®ã®ãã¼ãã£ã·ã§ã³ãè¦ã¾ãã2048ã»ã¯ã¿ããå§ã¾ã£ã¦ãã®ã§ã2048ã»ã¯ã¿Ã512byteï¼0x100000
ãè¦ã¾ããã¹ã¼ãã¼ãããã¯ã¯ã1024byte ãªãã»ããã®ä½ç½®ï¼ä»åãªã 0x100400ï¼ããå§ã¾ã£ã¦ãããã§ãã
ã¹ã¼ãã¼ãããã¯ã® 0x38 ã®ä½ç½®ï¼ä»åãªã 0x100438ï¼ã«ãã¸ãã¯ãã³ãã¼ãããã¾ããEXT2/3/4 ãªã 0xEF53 ã«ãªã£ã¦ãã¾ãã確ãã«ãªã£ã¦ã¾ãã3çªç®ã®ãã¼ãã£ã·ã§ã³ã¯ãããå£ãã¦ããã¨ãããã¨ã§ããã
3çªç®ã®ãã¼ãã£ã·ã§ã³ãåæã«è¦ã¦ããã¾ãããã¼ãã£ã·ã§ã³ã®éå§ä½ç½®ã¯ã1140736ã»ã¯ã¿Ã512byteï¼0x22D00000
ã§ãã1024byteãªãã»ããã®ã»ã¯ã¿ãè¦ã¦ã¿ã¾ãããã¼ãããã¸ãã¯ãã³ãã¼ï¼0x22d00438ï¼ã¯æ®éã« 0xEF53 ãå
¥ã£ã¦ãã¾ãããåé¡ã®å ´æãåããã¾ããã
ãããã調ã¹ã¦ããã¨ãããè¤æ°ãã¼ãã£ã·ã§ã³ãå«ãå ´åã®å¥ã®ãã¦ã³ãæ¹æ³ãããã¾ããããããããã£ãããã¦ã³ãã§ãã¾ããã
losetupã³ãã³ãã¯ãã«ã¼ãããã¯ããã¤ã¹ã使ç¨ãã¦ãã£ã¹ã¯ã¤ã¡ã¼ã¸ãããã¤ã¹ã¨ãã¦æ±ããããã«ãªãã¾ããããã«ããã/dev ã«å²ãå½ããã¾ããã
mkfs.ext4 ã® -n ãªãã·ã§ã³ã使ããã¨ã§ãã¹ã¼ãã¼ãããã¯ã®ä»£æ¿ãããã¯ã®ä½ç½®ãç¥ããã¨ãåºæ¥ã¾ãã
e2fsckã³ãã³ãã§ã¹ã¼ãã¼ãããã¯ã®ä¿®å¾©ã試ã¿ãã³ãã³ãã§ããããã«ãããããã¯ã¢ããããã¦ããã¹ã¼ãã¼ãããã¯ã§ä¿®å¾©ãåºæ¥ã¦ããã¦ã³ããããã¨ãåºæ¥ã¾ããã
$ sudo losetup -P --show -f disk.flag.img
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 1G 0 loop
tqloop0p1 259:0 0 300M 0 part
tqloop0p2 259:1 0 256M 0 part
mqloop0p3 259:2 0 467M 0 part
sda 8:0 0 64G 0 disk
tqsda1 8:1 0 50M 0 part /boot/efi
mqsda2 8:2 0 63.9G 0 part /home
/
$ sudo mount -t ext4 /dev/loop0p3 mnt2/
mount: /home/user/svn/experiment/picoCTF/picoCTF2024_Forensics/mnt2: can't read superblock on /dev/loop0p3.
dmesg(1) may have more information after failed mount system call.
$ sudo mkfs.ext4 -n /dev/loop0p3
mke2fs 1.47.1-rc2 (01-May-2024)
/dev/loop0p3 contains a ext4 file system
last mounted on / on Sun Feb 18 04:03:14 2024
Proceed anyway? (y,N) y
Creating filesystem with 478208 1k blocks and 119416 inodes
Filesystem UUID: 3b9ea8b2-67c2-4368-a6e8-f9fefbdf5b63
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
$ sudo mount -t ext4 /dev/loop0p3 mnt2/
mount: /home/user/svn/experiment/picoCTF/picoCTF2024_Forensics/mnt2: can't read superblock on /dev/loop0p3.
dmesg(1) may have more information after failed mount system call.
$ sudo e2fsck -b 8193 /dev/loop0p3
e2fsck 1.47.1-rc2 (01-May-2024)
Superblock needs_recovery flag is clear, but journal has data.
Recovery flag not set in backup superblock, so running journal anyway.
/dev/loop0p3: recovering journal
JBD2: Invalid checksum recovering data block 15602 in log
JBD2: Invalid checksum recovering data block 15602 in log
JBD2: Invalid checksum recovering data block 15602 in log
Journal checksum error found in /dev/loop0p3
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: +(73729--73989) +(204801--205061) +(221185--221445) +(401409--401669)
Fix<y>? yes
Free blocks count wrong for group
Fix<y>? yes
Free blocks count wrong for group
Fix<y>? yes
Free blocks count wrong for group
Fix<y>? yes
Free blocks count wrong for group
Fix<y>? yes
Free blocks count wrong for group
Fix<y>? yes
Free blocks count wrong for group
Fix<y>? yes
Free blocks count wrong for group
Fix<y>? yes
Free blocks count wrong for group
Fix<y>? yes
Free blocks count wrong for group
Fix ('a' enables 'yes' to all) <y>? yes
Free blocks count wrong for group
Fix ('a' enables 'yes' to all) <y>? yes
Free blocks count wrong for group
Fix ('a' enables 'yes' to all) <y>? yes
Free blocks count wrong for group
Fix ('a' enables 'yes' to all) <y>? yes
Free blocks count wrong for group
Fix<y>? yes
Free blocks count wrong for group
Fix<y>? yes
Free blocks count wrong for group
Fix<y>? yes
Free blocks count wrong (437564, counted=378717).
Fix<y>? yes
Free inodes count wrong for group
Fix<y>? yes
Directories count wrong for group
Fix<y>? yes
Free inodes count wrong for group
Fix<y>? yes
Directories count wrong for group
Fix<y>? yes
Free inodes count wrong for group
Fix<y>? yes
Directories count wrong for group
Fix<y>? yes
Free inodes count wrong (119404, counted=116975).
Fix<y>? yes
Padding at end of inode bitmap is not set. Fix<y>? yes
/dev/loop0p3: ***** FILE SYSTEM WAS MODIFIED *****
/dev/loop0p3: 2441/119416 files (0.8% non-contiguous), 99491/478208 blocks
$ sudo mount -t ext4 /dev/loop0p3 mnt2/
ãã¦ã³ãã¾ã§åºæ¥ãã®ã§ãããããæ¢ãã¦è¦ã¾ããããè¦ã¤ãããã¾ããã§ãããã®ãã¢ããã§ãã
writeupãè¦ã¾ããã¸ã£ã¼ãã«ãã¡ã¤ã«ã®è¿ãã«ãã©ã°ãããããã§ãããã¤ããªã¨ãã£ã¿ã§ããinnocuous-file.txtããæ¤ç´¢ãã¦ãä¸ããé çªã«è¦ã¦ããã¨ãpic
ãoCT
ãF{1
ã_53
ã3_n
ã4m3
ã5_8
ã0d2
ã4b3
ã0}
ãè¦ã¤ãã£ãã
ç¹ããã¨ãpicoCTF{1_533_n4m35_80d24b30}
ã«ãªãã¾ããã
ãã㧠Medium ãªã®ã¯ã·ã§ãã¯ã§ãã
ããã§ãForensics ã¯çµäºã§ãã
ãããã«
ä»åã¯ãpicoCTF ã® picoCTF 2024 ã®ãã¡ãForensics ã¨ããã«ãã´ãªã®å
¨8åãããã¾ãããæå¾ã® 2åã¯è§£ãã¾ããã§ããããè¦æãªããããªç¥è¦ãå¾ãããã¨æãã¾ãã
æå¾ã«ãªãã¾ããããã¨ã³ã¸ãã¢ã°ã«ã¼ãã®ã©ã³ãã³ã°ã«åå ä¸ã§ãã
æ°æ¥½ã«ãããã¨ãããããé¡ããããã¾ãð
ä»åã¯ä»¥ä¸ã§ãï¼
æå¾ã¾ã§ãèªã¿ããã ãããããã¨ããããã¾ããã