728x90
이번 포스트에서는 Python Challenge의 Level 4 문제에 대해 다루겠다.
문제를 클릭하면 다음과 같은 페이지가 출력된다.
## 문제 해석 :
사진이 한 장 달려 있다. 사진을 클릭하면 다음과 같은 화면이 나온다.
여기서 nothing은 URL의 파라미터인 nothing임을 짐작할 수 있다.
그럼 해당 파라미터를 계속 바꿈으로써 문제를 풀 수 있는 것으로 보인다.
## 문제 풀이 :
파라미터가 여러 번 변경되므로 파이썬을 통해 자동화 코드를 작성해보았다.
### 공격 코드 :
from urllib import response
import requests
url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?"
nothing = 12345
while 1:
params = {'nothing': nothing}
response = requests.get(url=url, params=params)
if "Divide" in response.text: # 중간에 Divide two 라는 문구가 나와서 추가
nothing = int(nothing) / 2
elif "and the next nothing is" not in response.text:
print("Last nothing is", nothing)
break
else:
nothing = response.text.split('the next nothing is')[1].lstrip()
### 실행 결과 :
### 공격문 : http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=66831
### 실행 결과 :
peak.html에 들어가보겠다.
### 최종 공격문 : http://www.pythonchallenge.com/pc/def/peak.html
### 실행 결과 :
Level 5로 넘어간 것을 확인할 수 있다.
'Wargame > Python Challenge' 카테고리의 다른 글
Python Challenge (Level 6) (0) | 2022.08.24 |
---|---|
Python Challenge (Level 5) (0) | 2022.08.06 |
Python Challenge (Level 3) (0) | 2022.08.03 |
Python Challenge (Level 2) (0) | 2022.08.01 |
Python Challenge (Level 1) (0) | 2022.07.31 |