프로젝트/Webhacking.kr

[Webhacking.kr] Challenge(old) 32번 문제

Uggjjini 2021. 7. 19. 09:41

문제 페이지는 해당 페이지와 같다.

 

Rank 와 Name, hit 의 목록들이 나열되어 있고 1위의 아이디를 클릭했더니 hit 의 숫자가 올라가는 것을 확인할 수 있었다.

 

 

다시 한번 더 아이디를 클릭하면 이미 투표를 했다는 창이 뜨면서 거부된다.

 

 

페이지의 소스 코드를 확인해도 특별한 단서를 찾지 못해 쿠키 값을 확인하였다.

 

 

 

vote_check 라는 쿠키항목이 존재하는 것을 확인할 수 있었다.

 

이 항목의 쿠키값을 지우고 다시 아이디를 누르면 hit 의 숫자가 증가하는 것을 확인할 수 있다.

 

 

<CTRL + F>를 이용하여 나의 아이디를 검색해보니 목록 가장 하단에 존재하였고  vote_check 쿠키 값을 이용하여 내 아이디의 hit 수를 100까지 증가시키면 문제가 풀릴 듯했다.

 

 

EditeCookie 프로그램을 이용하여 vote_check 쿠키를 필터링 시켜주는 과정을 거쳤다.

 

 

쿠키 값이 적힌 부분 옆에 빨간색의 차단 표시를 눌러 필터링 목록에 들어간다.

 

 

그리고 값으로 차단을 포함하여 전부 체크해주면 vote_check 쿠키 항목이 사라진 것을 확인할 수 있다.

 

 

이제 투표를 계속 할 수 있게되었다. 그렇지만 아이디를 100번 클릭하는것은 상당히 불편하여 python으로 프로그램을 작성해 보았다.

 

import requests

for i in range(99):
    url="https://webhacking.kr/challenge/code-5/?hit=uggjjini"
    cookie = {'PHPSESSID':'1234'}
    session=requests.Session()
    payload=session.get(url, cookies=cookie)

 

hit를 올릴때 url 에서 hit 파라미터에 아이디를 지정하여 패킷을 전달하는 것을 이용하여 프로그램을 작성하였다.

 

 

해당 프로그램을 실행하면 내 아이디의 hit 를 99번까지 올라가고 한번더 누르면 문제가 풀리는 것을 확인할 수 있다.