Skip to content
This repository has been archived by the owner on Jan 17, 2024. It is now read-only.

Commit

Permalink
foren/headers-ii (#8)
Browse files Browse the repository at this point in the history
* file headers chall part 2

* make it work
  • Loading branch information
mud-ali authored Aug 20, 2023
1 parent ea565f4 commit 376899d
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 0 deletions.
16 changes: 16 additions & 0 deletions headers-ii/chall.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Headers II
categories:
- foren
value: 75
flag: camp{wH@7s_an_3xTr@_f!l3_aNYw@y$_r3dhi8ib28bf}
description: |-
My friends are passing even weirder files within the group chat now.
I have no clue what they're trying to hide this time.
hints:
- There's no file extension, but what other way could I figure out what type of file it is?
- Someone told me there might be multiple files (even though they only sent one)
files:
- src: funfile
authors:
- Mudasir
visible: true
Binary file added headers-ii/flag.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added headers-ii/funfile
Binary file not shown.
25 changes: 25 additions & 0 deletions headers-ii/generator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
'''
@author Mudasir
some util function(s) to generate flag and copy it to video
'''

from PIL import Image, ImageDraw, ImageFont
import io

FLAG = 'camp{wH@7s_an_3xTr@_f!l3_aNYw@y$_r3dhi8ib28bf}'

def generate_flag():
final_bytes = io.BytesIO()
img = Image.new('RGB', (600, 100), color = (0, 0, 0))
d = ImageDraw.Draw(img)
fnt = ImageFont.truetype('arial.ttf', 20)
d.text((40,30), FLAG, font=fnt, fill=(255,255,255))
# img.save('flag.png')
img.save(final_bytes, format='PNG')
final_bytes = final_bytes.getvalue()

with open('funfile', '+ab') as f2:
f2.write(final_bytes)

generate_flag()
8 changes: 8 additions & 0 deletions headers-ii/solve/solve.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# File headers

Hint in the name: headers. Despite the lack of a file extension we can check the file header / magic number See: (https://en.wikipedia.org/wiki/List_of_file_signatures)[https://en.wikipedia.org/wiki/List_of_file_signatures] for more information on file headers.

Opening the file in a text and/or hex editor shows us that we have an mp4 file. However, the video does not open in a media player. Further examination would show that the file has a PNG glued on to it. Separating the files shows us that the video is a red herring, and the PNG has the flag.


Script is included at (solve.py)[solve.py], run in the same directory as the file. It creates (solve.png)[solve.png] with the flag.
Binary file added headers-ii/solve/solve.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions headers-ii/solve/solve.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
with open('funfile','rb') as f:
data = f.read().split(b"\x89PNG")
with open('solve.png','wb') as f2:
f2.write(b"\x89PNG")
f2.write(data[1])
print('Done')

0 comments on commit 376899d

Please sign in to comment.