Yozzang의 해킹일기 💻
article thumbnail
728x90

이번 포스트에서는 Python Challenge의 Level 16 문제에 대해 다루겠다.


문제를 클릭하면 다음과 같은 페이지가 출력된다.

Level 16

## 문제 해석 : 

중간에 핑크색 선이 여러개 들어가 있는 사진이 한 장 출력되어 있다. 단서는 해당 문제의 제목인 "let me get this straight"이다. 즉 정렬해달는 뜻인데, 우선 해당 사진을 다운로드하고 픽셀을 출력해보면 다음과 같이 중복된 숫자가 출력된 것을 알 수 있다.

픽셀 출력

195가 바로 사진 중간에 보이는 핑크색 선이다. 해당 픽셀만 따로 정렬해서 푸면 될 것으로 보인다.

## 문제 풀이 : 

파이썬을 통해 핑크색 선만 따로 정렬해보겠다. 

### 공격 코드 :

from PIL import Image, ImageChops

img = Image.open("mozart.gif")

for i in range(img.height):
    box = 0, i, img.size[0], i+1

    row = img.crop(box)  # 박스 영역의 복사본 반환
    bytes = row.tobytes()

    pink_offset = bytes.index(195)
    row = ImageChops.offset(row, -pink_offset)  # pink색의 오프셋을 음수로 두어야 왼쪽으로 이동
    img.paste(row, box)

img.save("Level16_answer.png")

### 실행 결과 : 

Level16_answer.png

romance라는 단어가 출력된 것을 확인할 수 있다.

### 최종 공격문 : http://www.pythonchallenge.com/pc/return/romance.html

### 실행 결과 : 

공격 성공

Level 17로 넘어간 것을 확인할 수 있다.

'Wargame > Python Challenge' 카테고리의 다른 글

Python Challenge (Level 18)  (0) 2022.09.17
Python Challenge (Level 17)  (0) 2022.09.16
Python Challenge (Level 15)  (0) 2022.09.11
Python Challenge (Level 14)  (0) 2022.09.10
Python Challenge (Level 13)  (0) 2022.09.08
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!