-
[Webhacking.kr] Challenge 32 풀이Wargame/Webhacking.kr 2019. 5. 12. 03:21
32번 문제로 들어가면 hit 수에 따른 랭킹이 나와있고, 맨 아래에는 join 버튼이 있다.
join 버튼을 클릭하면 Done이라는 팝업창이 뜨고, 화면에는 내 아이디와 함께 hit 수가 보인다. 처음에는 hit가 0인데, 내 아이디를 한번 클릭하면 hit가 1로 변한다.
한번 더 내 아이디를 클릭하면 no라는 팝업창이 뜨고 hit도 변하지 않는다.
Fiddler로 no 알림창이 나올 때의 페이지를 확인해보니 vote_check라는 쿠키가 ok로 되어있는 것을 확인할 수 있었다.
EditThisCookie로도 vote_check 쿠키를 확인할 수 있다.
vote_check 쿠키를 삭제한 후 다시 내 아이디를 클릭하니 hit가 증가했고, vote_check 쿠키도 다시 생성됐다.
이러한 과정을 몇 번 반복해본 결과 알아낸 것은, 한 번 내 아이디를 클릭하면 vote_check 쿠키가 생성되면서 hit 수가 1 증가하고, 한번 vote_check 쿠키가 생성되고 나면 쿠키를 삭제하기 전까지는 hit 수가 더 이상 늘어나지 않고 no 팝업창만 뜬다는 것이었다.
즉, 서버에서 사용자에게 쿠키값이 있는지 확인한 후 없으면 hit를 1 증가시키고, 쿠키값이 있으면 hit를 증가시키지 않고 no 팝업만 띄우는 것이다.
(일종의 투표 시스템처럼 생각하면 된다. 각 사용자마다 1번만 투표를 할 수 있으므로, A 사용자가 투표를 하면 투표를 완료했다는 표시로서 vote_check 쿠키를 생성해 A에게 부여한다. 만약 A가 한번 더 투표를 하려고 하면, 서버가 A의 쿠키값을 확인하여 투표를 더 이상 할 수 없도록 막는다.)
따라서 hit를 100까지 채우려면 vote_check 쿠키를 삭제하고 아이디를 클릭하는 과정을 계속 반복해야 한다. 직접 일일이 반복해서 100번을 채울수도 있지만... 그렇게 일일이 노가다로 하는 것보다는 Burp Suite, Fiddler와 같은 툴을 사용하는 것이 좋다.
나는 Fiddler를 사용했다.
vote_check 쿠키가 생성된 상태의 페이지에서 Inspector - Raw에 있는 내용을 복사해 Composer에 붙여넣는다.
Composer에서 vote_check=ok의 ok를 삭제하고, 해당 요청을 보내는 URL을 입력하는 부분에 http://webhacking.kr/challenge/codeing/code5.html?hit=본인아이디를 입력한다. 그 다음 Execute를 클릭하면 해당 페이지로 요청이 전송되면서 hit가 증가한다. hit가 100 이상이 될 때까지 Excute를 클릭해준다.
hit이 100 이상이 되면 팝업창이 뜨면서 문제가 해결된다.
※ 다른 방법
더 쉬운 방법이 있어서 추가한다.
EditThisCookie를 열어 vote_check 쿠키의 ok 부분을 삭제하고 아래 체크 표시를 클릭한 뒤, 자물쇠를 클릭해 쿠키값을 고정시킨다. 이 상태에서 내 아이디를 클릭하면 클릭 수만큼 hit 수가 증가하고 vote_check도 ok로 표시되지 않는다.
'Wargame > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] Challenge 39 풀이 (0) 2019.05.18 [Webhacking.kr] Challenge 26 풀이 (0) 2019.05.18 [Webhacking.kr] Challenge 27 풀이 (1) 2019.05.12 [Webhacking.kr] Challenge 25 풀이 (0) 2019.05.12 [Webhacking.kr] Challenge 24 풀이 (0) 2019.05.12