728x90
이번 포스트에서는 Python Challenge의 Level 5 문제에 대해 다루겠다.
문제를 클릭하면 다음과 같은 페이지가 출력된다.
## 문제 해석 :
사진 한 장과 "발음해봐라"는 문구가 나와 있다. 소스코드를 확인해보니 다음과 같다.
"peak hell의 발음이 친숙하다?"라는 문구가 나와 있으며, banner.p라는 파일이 있다. ".p"라는 확장자를 통해 해당 파일은 파이썬의 피클파일인 것을 알 수 있다.
## 문제 풀이 :
먼저 해당 피클 파일을 실행해보겠다.
### 공격 코드 :
import pickle
from urllib.request import urlopen
data = pickle.load(urlopen("http://www.pythonchallenge.com/pc/def/banner.p"))
print(data)
### 실행 결과 :
수많은 튜플들이 출력된 것을 확인할 수 있다. 그 중 유독 "#"만이 문자로 되어 있다. 해당 튜플을 풀어서 보자면 다음과 같다.
### 공격 코드 :
import pickle
from urllib.request import urlopen
data = pickle.load(urlopen("http://www.pythonchallenge.com/pc/def/banner.p"))
for line in data:
print("".join([k * v for k, v in line]))
### 실행 결과 :
channel이라고 출력된 것을 확인할 수 있다.
### 최종 공격문 : http://www.pythonchallenge.com/pc/def/peak.html
### 실행 결과 :
Level 6로 넘어간 것을 확인할 수 있다.
'Wargame > Python Challenge' 카테고리의 다른 글
Python Challenge (Level 7) (0) | 2022.08.25 |
---|---|
Python Challenge (Level 6) (0) | 2022.08.24 |
Python Challenge (Level 4) (0) | 2022.08.05 |
Python Challenge (Level 3) (0) | 2022.08.03 |
Python Challenge (Level 2) (0) | 2022.08.01 |