728x90
이번 포스트에서는 Python Challenge의 Level 2 문제에 대해 다루겠다.
문제를 클릭하면 다음과 같은 페이지가 출력된다.
## 문제 해석 :
"문자를 식별하라" 라는 문구가 적혀 있고 페이지의 소스 코드 안에 있다는 말도 함께 적혀 있다. 즉 페이지의 소스 코드 내에 답안이 있는 것으로 보인다.
## 문제 풀이 :
마우스 우클릭하여 페이지의 소스 코드를 확인해보겠다.
엄청 긴 소스 코드가 출력된 것을 확인할 수 있다. 여기서 초록색 위주로 보면 되는데, 기호들 사이에 간혹 아래 그림 처럼 알파벳이 들어가 있는 것을 확인할 수 있다.
그럼 파이썬을 활용하여 페이지 소스를 받은 다음에, 기호가 아닌 알파벳만 출력하게끔 하면 될 것 같다.
### 공격 코드 :
import requests
url = "http://www.pythonchallenge.com/pc/def/ocr.html"
result = ""
response = requests.get(url)
strings = response.text.split('find rare characters in the mess below:')[1] # find rare 구문부터 탐색을 시작
for i in range(len(strings)):
if strings[i].isalpha(): # 알파벳인 경우
result += strings[i]
print(result)
### 실행 결과 :
equality라는 단어가 출력된 것을 확인할 수 있다. 이어서 해당 단어를 URL에 넣어서 실행해보겠다.
### 최종 공격문 : http://www.pythonchallenge.com/pc/def/equality.html
### 실행 결과 :
Level 3로 넘어간 것을 확인할 수 있다.
'Wargame > Python Challenge' 카테고리의 다른 글
Python Challenge (Level 5) (0) | 2022.08.06 |
---|---|
Python Challenge (Level 4) (0) | 2022.08.05 |
Python Challenge (Level 3) (0) | 2022.08.03 |
Python Challenge (Level 1) (0) | 2022.07.31 |
Python Challenge (Level 0) (0) | 2022.07.30 |