먼저 color.png 사진을 확인해 보았다.
가로 7 픽셀, 세로 200 픽셀인
검은색과 빨간색으로만 이루어진 길쭉한 그림 파일임을 확인할 수 있다.
일단 내가 아는 방법으로 이 파일에 접근해 보았다.
LSB 스테가노그래피 디코더 사이트에 넣어보니 역시나 아무것도 발견할 수 없었다.
또 HxD 프로그램으로도 확인해 보았는데 특별한 것을 발견할 수 없었다.
그래서 풀이를 찾아보았더니
위 사진의 검은색을 이진수 0으로, 빨간색을 이진수 1로 변환해 바이너리 값으로 추출한 후, 해당 바이너리 값을 아스키 코드로 다시 변환하면 키가 나온다고 한다.
먼저 위 사진을 바이너리 값으로 추출하는 작업을 해 보았다.
(참고한 블로그) https://hackpo.tistory.com/185
아래 코드는 검은색을 이진수 0으로, 빨간색을 이진수 1로 변환해 바이너리 값으로 추출한 후
다시 ASCII 코드로 변환하는 코드이다.
from PIL import Image
pic = Image.open("color.png")
data = pic.load()
red = (255, 0, 0)
binary_lines = []
width, height = pic.size
for y in range( height ):
binary_line = []
for x in range( width ):
pixel = data[x, y]
if pixel == red:
binary_line.append('1')
else:
binary_line.append('0')
binary_lines.append( binary_line ) #여기까지 바이너리 값 추출
ascii_text = ''.join([ chr(int(''.join(separated),2))for separated in binary_lines ])
print ( ascii_text )
Python Image Library란? 파이썬 인터프리터에 다양한 이미지 파일 형식을 지원하고 강력한 이미지 처리와 그래픽 기능을 제공하는 자유-오픈 소스 소프트웨어 라이브러리이다. 줄여서 PIL이라고 부른다. (출처: 위키백과) |
내 컴퓨터엔 파이썬 3이 설치되어 있어서 먼저
pip3 install image로 image 라이브러리를 다운받았다.
(파이썬 2일경우 pip install image)
그 다음 py 명령어로 위의 파이썬 코드를 실행하니 키가 나왔다!
key: 3xXKkFstTUpsG2IFDirE6xDrcAF8DSx4iWxd5f9IQ9T205izN8lS2MQUlsF11gT4TFXHHlLHVHprNTtrh6lURfdUW7Lpuzgu1VKzwb1bg1oq6Ae3GnykkLZZsnze3HVLxHlfCYtzyrcV2Oxp0Gb0Z2ELphR4Oxo7TyvHCuWKWlN8t8KIfHysZK7jBNPu6wRVEUPIwVra
'CTF Write-Ups > [DigitalForensic] with CTF' 카테고리의 다른 글
[CTF-d] Network_DefCoN#21 #1 (0) | 2020.07.13 |
---|---|
[CTF-d] Multimedia_사진 속에서 빨간색이... (0) | 2020.07.13 |
[CTF-d] Multimedia_Find Key(moon) (0) | 2020.07.13 |
[CTF-d] Multimedia_이 그림에는 뭔가 좀 수상한... (0) | 2020.07.13 |
[CTF-d] Multimedia_거래 조건 알고 있잖아요? (0) | 2020.07.13 |