728x90
이번 포스트에서는 CTF-D의 브리타니아의 원더랜드... 문제에 대해 다루겠다.
문제를 클릭하면 다음과 같다.
## 문제 해석 :
해당 이미지 파일의 메시지를 디코딩하여 플래그를 찾으면 되는 것으로 보인다.
## 문제 풀이 :
문제 파일을 실행해보니 다음과 같이 빨간색과 검은색으로 이루어진다는 것을 알 수 있다.
파일의 속성을 확인해보니 다음과 같이 픽셀로 이루어진 것을 알 수 있다.
사진의 색이 두 가지로만 이루어진 것으로 보아 특정 데이터를 이진 코드로 변환해서 반영한 것일 수도 있다.
즉 예를 들면 검정색은 0, 빨간색은 1이라는 이진수를 뜻하는 것일 수도 있겠다는 것이다.
파이썬 코드를 이용해서 이진 코드를 추출하여 아스키코드로 변환해보겠다.
### 추출 코드 :
from PIL import Image
img = Image.open("color.png")
data = img.load()
red = (255, 0, 0)
binary_datas = []
width, height = img.size
for y in range(height):
binary_data = []
for x in range(width):
pixel = data[x, y]
if pixel == red:
binary_data.append("1")
else:
binary_data.append("0")
binary_datas.append(binary_data)
flag = ''.join([chr(int(''.join(i), 2)) for i in binary_datas]) # 아스키코드로 변환
print(flag)
### 실행 결과 :
### Flag : 3xXKkFstTUpsG2IFDirE6xDrcAF8DSx4iWxd5f9IQ9T205izN8lS2MQUlsF11gT4TFXHHlLHVHprNTtrh6lURfdUW7Lpuzgu1VKzwb1bg1oq6Ae3GnykkLZZsnze3HVLxHlfCYtzyrcV2Oxp0Gb0Z2ELphR4Oxo7TyvHCuWKWlN8t8KIfHysZK7jBNPu6wRVEUPIwVra
'Wargame > CTF-D' 카테고리의 다른 글
CTF-D (내 친구는 이것이 특별한...) (0) | 2022.08.17 |
---|---|
CTF-D (Three Thieves Threw Trumpets Through Trees) (0) | 2022.08.15 |
CTF-D (Find Key(moon)) (0) | 2022.08.14 |
CTF-D (Find Key(butterfly)) (0) | 2022.08.13 |
CTF-D (플래그를 찾아라!) (0) | 2022.08.12 |