반응형
문제를 보면 다음과 같다.
처음에 Start라는 버튼이 있다.
눌러보면 다음과 같이 페이지가 변한다.
먼저 자신의 ip가 나오며 패스워드를 입력하는 폼이 있다.
여기서 "?"라는 버튼이 있는데 눌러보면 alert되는데 alert된 값을 보면 "1234"가 있다.
1234를 입력해보자.
당연히 1234가 패스워드가 아니다.
여기서 봐야할것은 처음에는 1/100이 였다가 1234를 입력한 후에는 2/100이 됬다.
위의 결과를 보고 다음과 같은 가정을 세워보면
2는 시도한 횟수를 의미하는것이고 100은 100번안에 우리가 원하는 패스워드가 있다는 가정이다.
다시한번 "?"를 클릭하여 나오는 값을 입력해보자.
위의 alert된 값을 입력하니 역시 시도횟수가 1이 증가한 3/100이 되었다.
이렇게 수동으로 하면 언젠가는 우리가 원하는 패스워드가 나올것이다.
하지만 출제자의 의도는 수동이 아닌 코드를 작성하여 위의 행위를 코드로 하고자 문제를 출제하였으니
코드를 작성해보자.
import requests
for i in range(1,시도 횟수):
print("시도 횟수: "+str(i))
get_pw = ("...../index.php")
html = requests.get(get_pw).text
if "onclick" in html:
cur_pw = (html[html.find("onclick=alert('")+15:html.find("')>")])
send_pw = ("...../index.php?pw="+cur_pw)
requests.get(send_pw)
else:
break
코드 설명은 따로 하지 않겠다.
반응형
'웹 해킹 > Coding' 카테고리의 다른 글
Coding 3번. (0) | 2020.12.13 |
---|---|
Coding 1번. (0) | 2020.12.12 |