whois

Webhacking.kr 32번 본문

Wargame/Webhacking.kr

Webhacking.kr 32번

HongJun Choi 2018. 7. 17. 16:03

[그림 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
Comments