whois
Webhacking.kr 32번 본문
[그림 1] 32번 페이지
32번을 클릭하게 되면 그림 1과 같은 페이지를 볼 수 있다. RANK와 HIT이 있는 것을 보고 게임 하는 것으로 유추했다.
[그림 2] 32번 소스
우클릭 하여 페이지 소스 보기를 하면 그림 2와 같은 소스 코드를 볼 수 있다. 일정한 형식으로 코드가 반복되고 있다. 내용만 다르지 틀은 같다는 소리다. 클릭을 하게 되면 location.href 속성을 통해 해당 값으로 이동한다.
[그림 3] 클릭
그림 2의 소스 코드 분석을 통해 어떤 식으로 동작하는지 알았으니, 그림 1의 아무 이름이나 클릭해 보았다. 결과는 그림 3과 같았다.
[그림 4] Join
계속 클릭해도 달라지는건 없어서 다른건 없을까 하고 찾아보다가 32번 페이지 맨 아래에 Join이라는 버튼이 있는 것을 확인 할 수 있었다.
[그림 5] Join 클릭
그림 4의 Join 버튼을 클릭해 보았더니 그림 5와 같이 계정 ID의 메시지가 뜨는 것을 확인 할 수 있었다.
[그림 6] 이름 생성
그림 5의 확인을 누르게 되면 업데이트 되서 32번 페이지로 돌아가게 되는데 본인 계정 ID가 생성되어 있을겁니다. 저는 HIT을 한 번 시도해서 1 / 100이 되어 있지만 처음 Join을 누르고 생성하게 되면 0 / 100이 되어 있는 것을 볼 수 있습니다.
[그림 7] Burp Suite Intercept
앞에서 설명한 것처럼 그림 6의 본인 계정을 그냥 클릭하게 되면 그림 3과 같은 no!라는 메시지를 받아 볼 수 있습니다. 중간에서 어떤 코드들이 지나가는지 확인 하기 위해 Burp Suite을 이용하였고, 그림 7과 같은 내용을 확인 할 수 있었습니다. 특이한 점은 vote_check 값에 ok가 들어 있다는 것입니다.
[그림 8] Hit It!
그림 7의 vote_check 값을 없애고 포워드 시켰더니 그림 8과 같이 오른쪽 값이 1 증가 한 것을 볼 수 있습니다.
[그림 9] Burp Suite Repeater 사용
100번 노가다 하는 것은 좀 아닌 것 같아서 Burp Suite의 Repeater 기능을 사용하기로 했다. 본인 계정 ID를 클릭 했을 때 Intercept 되는 코드에서 vote_check의 값을 그림 9와 같이 없애고 우클릭 해서 Send to Repeater를 클릭한다.
[그림 10] Burp Suite Repeater
그림 9에서 Send to Repeater를 클릭하게 되면 Repeater 탭에 그림 10과 같이 내용이 생기는 것을 볼 수 있다. Go 버튼을 100번 클릭해서 문제를 해결할 수 있다. 이 또한, 귀찮기 때문에 자동화 스크립트를 만들었다.
[그림 11] Solve.py
urllib 라이브러리만을 가지고 그림 11과 같은 코드 작성이 가능하다. Python 3.6을 사용하였습니다. 헤더 값은 Burp Suite의 Headers의 Cookie 값은 복사 하셔서 ""로 묶어 주시면 됩니다.
※ Python 3.6 Library Reference : https://docs.python.org/3.6/library/urllib.request.html#module-urllib.request
※ https://github.com/who-is/webhacking.kr-32
'Wargame > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 39번 (0) | 2018.07.19 |
---|---|
Webhacking.kr 38번 (0) | 2018.07.18 |
Webhacking.kr 27번 (0) | 2017.09.07 |
Webhacking.kr 25번 (0) | 2017.09.01 |
Webhacking.kr 26번 (0) | 2017.07.26 |