CTFlearn-Writeups/Programming/The Adventures of Boris Iva.../README.md

52 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

2020-07-31 18:48:25 +05:30
## The Adventures of Boris Ivanov Part 2
The main idea finding the flag using OpenCV library and Python.
#### Step-1:
After we download `confetti.zip`, we see that we have 500 photos.
Each dimension is 500 $\times$ 1 and according to problem statement, the image size is 500 $\times$ 500.
#### Step-2:
So basically, we have to concatenate the 500 images in **vertical** fashion.
#### Step-3:
Make a directory to extract all 500 images and set your `pwd` to that directory containing all images.
After that only work is to join all images.
#### Step-5:
I executed this simple `Concatenate.py` script and it worked.
```
from PIL import Image
listimages=[]
for i in range(0,500):
listimages.append(Image.open(str(i) + ".png")) # Make a list of pointers to the 500 pictures.
concatenate=Image.new("RGB",(500,500)) # Size of the concatenate picture
Y_offset=0
for i in listimages:
concatenate.paste(i,(0,Y_offset))
Y_offset+=1 # Add 1 at a time , Because the height of each picture is 1.
concatenate.save("concatenate.png")
```
#### Step-6:
We get the output as `concatenate.png` after the above script is run. The image is as follows:
<img src="concatenate.png">
We see a hex code in between.
#### Step-7:
The Hex code is as follows:
`66 6c 61 67 7b 74 68 33 5f 4b 47 42 5f 6c 30 76 33 73 5f 43 54 46 7d`
I converted it to text online to get the flag.
#### Step-7:
Finally the flag becomes:
`flag{th3_KGB_l0v3s_CTF}`