Yozzang의 해킹일기 💻
article thumbnail
728x90

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


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

Level 14

## 문제 해석 : 

italy라는 회오리빵 사진과 바코드처럼 보이는 사진 한장이 출력되어 있다. 개발자 도구를 확인해보니 아래와 같이 "100*100 = (100+99+99+98)"이라는 힌트가 있다.

개발자 도구

100*100은 가로와 세로의 길이라고 생각할 수 있고, 100+99+99+98에서 총 4개의 수가 나와 있으므로 사각형이라고 생각할 수 있다. 즉 100(외부)에서 1(내부)로 크기를 줄이면서 생긴 회오리형태라고 볼 수 있다.

## 문제 풀이 : 

이미지를 다운로드해서 크기를 출력해보겠다.

### 공격 코드 :

from PIL import Image

img = Image.open('wire.png')
print(img.size)

### 실행 결과 : 

이미지 사이즈

사이즈를 임의로 늘린 것 같다. 파이썬을 통해 이미지의 10000 픽셀을 사용하여 외부에서 내부로 가는 나선형태의 픽셀로 재계산하면 될 것 같다.

### 공격 코드 : 

from PIL import Image

img = Image.open('wire.png')

delta = [(1, 0), (0, 1), (-1, 0), (0, -1)]
img_solv = Image.new('RGB', [100, 100])

x, y, p = -1, 0, 0
d = 200
while d/2 > 0:
    for v in delta:
        steps = d // 2
        for s in range(steps):
            x, y = x + v[0], y + v[1]
            img_solv.putpixel((x, y), img.getpixel((p, 0)))
            p += 1
        d -= 1
        
img_solv.save('wire_solv.png')

### 실행 결과 :

사진 출력

고양이 사진이 출력된 것을 확인할 수 있다.

### 공격문 : http://www.pythonchallenge.com/pc/return/cat.html

### 실행 결과 : 

1차 시도

고양이의 이름이 uzi이다. 이는 Level 15로 가는 Key이다.

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

### 실행 결과 : 

공격 성공

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

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

Python Challenge (Level 16)  (0) 2022.09.15
Python Challenge (Level 15)  (0) 2022.09.11
Python Challenge (Level 13)  (0) 2022.09.08
Python Challenge (Level 12)  (0) 2022.09.07
Python Challenge (Level 11)  (0) 2022.09.06
profile

Yozzang의 해킹일기 💻

@요짱

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