2017. 1. 1. 18:43 :: 문제풀이/WebHacking,kr

안녕하세요. Message 입니다.

Webhacking.kr Lv10 문제풀이입니다.

 

 

-----------------------------------------------------------------------------------------------------------------

0x00 문제분석

-----------------------------------------------------------------------------------------------------------------

 

10번 문제로 접속합니다.

"buy lotto" 라는 문구가 보이며, 별다른 특징은 없어보입니다.

 

소스코드를 살펴봅니다.

"hackme" 라는 id값을 가진 a태그 외에는 주목할만한 점이 보이지 않습니다.

 

<a> 태그에 몇몇가지 이벤트가 존재합니다.

onmouseover, onmouseout 이벤트로 인해 O라고 되어 있는 문자에 마우스를 가져가면 모양이 변하며,

onclick 이벤트 안에 하드코딩 되어 있는 this.style.posLeft+=1; 스크립트로 인해 글자를 클릭시 오른쪽으로 이동합니다.

 

 

 

-----------------------------------------------------------------------------------------------------------------

0x01 문제풀이

-----------------------------------------------------------------------------------------------------------------

 

<a> 태그에 있는 onclick 이벤트를 좀더 자세히 살펴보겠습니다.

아무래도 아래의 스크립트가 이번 문제를 해결하는 열쇠인듯 합니다.

if(this.style.posLeft=800) this.href='?go='+this.style.posLeft

 

posLeft 속성이 800이 되면 특정 go 변수에 800을 할당하고, 해당 URL로 이동합니다.

그럼 go 속성에 800을 할당해서 새로고침을 누르면 되는구나 싶어 시도해보았더니

아래쪽에 "nohack" 이라는 문구가 생깁니다. 단순히 숫자만 바꿔서는 해결이 안되는 케이스인듯 합니다.

 

그래서 일단 go 변수에 799 까지 할당한 다음 직접 클릭하여 어떤 패킷이 들어가는지 확인해보기로 했습니다.

이때 hackme.style.posLeft에 799를 할당하는 방법은 여러가지가 있는데,

제가 주로 사용하는 방법은 IE의 개발자 - 콘솔모드 입니다만,

DOM탐색기 - 스타일에서 속성을 변경하면 정확한 타겟에 오타없이 지정할 수도 있습니다.

이후에 문구를 한번 클릭해주면 클리어입니다.

 

자..그렇다면 직접 800을 URL로 입력했을 경우와 799까지 입력해주고 클릭했을 경우

어떤 차이가 있길래 클리어가 갈리는지 알고싶어집니다.

일단 패킷을 떠서 비교해보니 직접 URL을 만들어서 접속한 경우 Referer 속성이 누락되는군요.

 ← 직접클릭

 ← URL작성

 

확실히 그 차이인지 확인해보기 위해서, 직접 URL을 작성한 상황에서 Referer 속성을 추가하여 보내봅니다.

 

이에 대한 응답은 Congratulation 입니다.

특정 페이지에서만 접근할 수 있도록 접근제어 옵션이 설정되어 있다고 보면 될 것 같습니다.

 

 

posted By Message.

Commit your way to the LORD, trust in him and he will do this. [PSALms 37:5]

 

posted by Red_Message