DongDD's IT

[webhacking.kr] Level 10 본문

Wargame/webhacking.kr

[webhacking.kr] Level 10

DongDD 2017. 11. 19. 15:34

[webhacking.kr] Level 10



문제에 들어가니 다음과 같은 형태가 있었다. buy lotto라는 글씨와 함께 회색 네모 왼쪽 위에 'o'가 써있는 것을 볼 수 있었다. 그냥 그림만 봐서는 무슨 그림인지도 잘 모르겠고 어떻게 진행해야 될지 생각해보았다.

'buy lotto'라고 써있는 것을 클릭해보았지만 아무 일도 일어나지 않았다. 그냥 text로 되어 있는 것 같았다.

이번에는 'o'를 클릭해보려고 마우스를 대는 순간 'o'가 'y0u'로 바뀌는 것을 볼 수 있었다. 왠지 이것을 통해 문제를 해결하는 방식 같았다.



그래서 일단 소스 코드를 보았다. 소스 코드를 살펴보니 'buy lotto' 이 부분에는 특별한 기능 없이 text로만 써있는 것을 볼 수 있었다. 그리고 그 위 줄에 있는 onmouseover 옵션으로 'y0u'로 바뀌는 것이 설정되어 있었다.

그리고 onclick 옵션으로 클릭할 때마다 this.style.posLeft의 값을 1증가시키는 것처럼 보이는 코드가 있었다. 만약 이 값이 800이 될 경우 Link가 생기는 것으로 보인다.

이 것을 800번 클릭하기에는 무리라고 생각하여 다른 방법을 생각해보았다.



처음으로 시도한 방법은 위와 같다. 현재 링크에서 GET방식을 이용하여 go라는 변수에 this.style.posLeft의 값을 넘기는 방식으로 새로운 링크를 생성하는 방식이라 생각했다. 그래서 현재 주소 뒤에 GET방식을 사용하여 ?go=800이라는 값을 넘겨보았다. 그랬더니 원래 있던 화면 밑에 'no hack'이라는 메시지가 출력되는 것을 볼 수 있었다. 처음에는 이것을 우회하는 문제인가 싶어 여러 가지 시도를 많이 해보았다. 알파벳도 넘겨보고 여러 문자열들을 넣어봤지만 no hack이라는 메시지밖에 볼 수 없었다. 그래서 다른 방법을 찾아 시도해보았다.



원래 있던 코드를 수정해보았다. 스크립트가 아닌 html로 구성되어 있었기 때문에 코드 수정을 해도 수정한대로 동작할 수 있었다. 처음에는 posLeft+=1로 되어있던 것을 posLeft+=800, 799로 고쳐서 시도해보았다. 하지만 아무것도 변하지 않았다. 아마 posLeft가 0이 아닌 마우스 위치를 표현하는 값이 들어가있는 것 같았다. 그래서 그냥 posLeft값에 더하는 것을 없애고 대입을 시켰다. 800의 값을 대입시켜 if문안으로 들어갈 수 있게 했다.

위 방법을 사용하여 문제를 통과할 수 있었다.


위 방법으로 문제를 풀다가 한번 이상하게 막혔었다. no hack이 나온 상태에서는 위와 같은 방법을 사용해 'o'가 새로운 링크로 바뀌어도 넘어가지 않았다.

아마 get방식으로 넘긴 상태에서 if문으로 들어가게 되면 webhacking.kr/challenge/codeing/code1.html?go=800?go=800 이런식으로 주소가 생성되서 새로운 링크가 먹통이 되는 것 같았다. 그래서 새로고침을 한 상태로 코드를 수정하고 'o'를 클릭하니 새로운 link가 클릭되어 통과할 수 있었다.

그런데 어쩌피 GET방식으로 새로운 페이지를 생성하는건데 왜 직접 GET방식으로 넘겼을 때는 문제가 통과되지 않는지 잘 모르겠다. 무슨 필터링이 되있는 것 같다.







**************     Answer & Flag     **************






처음에 문제를 보고 무엇을 해야할 지 몰라서 이것저것 만져보다가 갑자기 통과하게 되었다. 문제를 풀다가 감이 오면 포스팅할 생각으로 문제를 풀면서 캡쳐를 하는데 갑작스럽게 통과하여 일단 통과한 사진을 캡쳐하고 이후에 문제를 다시 풀었다.

이렇게 간단한 방법으로 통과할 수 있을지 몰랐다. 250점치고는 이외로 간단했던 문제 같다. 별 다른 기술도 쓰이지 않았고 오랜 시간을 들이지 않고도 통과할 수 있어서 좋았다.

'Wargame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Level 58  (0) 2017.12.19
[webhacking.kr] Level 52  (0) 2017.12.02
[webhacking.kr] Level 3  (0) 2017.11.11
[webhacking.kr] Level 11  (0) 2017.09.30
[webhacking.kr] Level 12  (0) 2017.09.27
Comments