728x90
이번 포스트에서는 Python Challenge의 Level 6 문제에 대해 다루겠다.
문제를 클릭하면 다음과 같은 페이지가 출력된다.
## 문제 해석 :
기부하라는 버튼이 있으며 개발자 도구를 이용하여 확인해보며 <-zip->이라는 힌트를 얻을 수 있다.
## 문제 풀이 :
channel.zip으로 접속해보겠다.
### 실행 결과 :
zip 파일이 다운로드가 되었으며, 해당 파일을 압축해제하면 위와 같이 여러 텍스트 파일이 존재한다.
readme.txt를 확인해보면 90052번부터 시작하며 정답이 zip 파일 안에 있다고 한다.
90052.txt 파일을 확인해보겠다.
### 실행 결과 :
위와 같이 Next nothing이 출력된 것을 확인할 수 있다. 그럼 파이썬 자동화 코드를 작성해서 최종 nothing을 알아내보도록 하겠다.
### 공격 코드 :
import zipfile
import re
f = zipfile.ZipFile("channel.zip")
print(f.read("readme.txt").decode("utf-8"))
num = '90052'
comments = []
while True:
content = f.read(num + ".txt").decode("utf-8")
comments.append(f.getinfo(num + ".txt").comment.decode("utf-8")) # 파일 설명란에 있는 값 추가하기
print(content)
match = re.search("Next nothing is (\d+)", content)
if match == None:
break
num = match.group(1)
print("".join(comments))
### 실행 결과 :
Hockey라는 단어가 출력된 것을 확인할 수 있다.
### 공격문 : http://www.pythonchallenge.com/pc/def/hockey.html
### 실행 결과 :
글씨를 자세히 보라는 문구가 나와 있다. Hockey라는 단어를 자세히 확인해보면 o, x, y, g, e, n으로 이루어진 것을 확인할 수 있다.
### 최종 공격문 : http://www.pythonchallenge.com/pc/def/oxygen.html
### 실행 결과 :
Level 7로 넘어간 것을 확인할 수 있다.
'Wargame > Python Challenge' 카테고리의 다른 글
Python Challenge (Level 8) (0) | 2022.08.26 |
---|---|
Python Challenge (Level 7) (0) | 2022.08.25 |
Python Challenge (Level 5) (0) | 2022.08.06 |
Python Challenge (Level 4) (0) | 2022.08.05 |
Python Challenge (Level 3) (0) | 2022.08.03 |