Gae Ko's Blog

[webhacking.kr] challenges10 본문

웹해킹 /[webhacking.kr]

[webhacking.kr] challenges10

Gae Ko 2017. 10. 13. 01:35

** 크롬에서 들어가면 실행이 안되서 익플로어로 들어가야한다고 한다 ㅎㅎ **


문제를 눌러보니 



음 뭔지 모르겠다! 그래서 소스코드를 보았다.



- onclick 이벤트 : 클릭하면 큰따옴표안에 있는 자바스크립트가 실행된다.

- onmouseover 이벤트 : 마우스의 커서가 해당 요소위에 위치할 때 일어나는 이벤트 

- onmouseout 이벤트 : 마우스의 커서가 해당 요소에서 위치하다가 빠져나갈 때 일어나는 이벤트

- innerText : 태그과 태그 사이에 존재하는 텍스트 테이터를 조작할 수 있도록 하는 onmouseover와 onmouseout 이벤트의 요소


코드를 보니 O라는 글씨를 누르면 발생하는 이벤트를 onclick 값으로 설정되어있는데, 그 이벤트로 this.style.posLeft가 1씩 커지고 그 값이 800이 되면 href를 이용해 해당 url경로로 이동하며 O 글자 위에 마우스의 커서가 위치하면 yOu라고 글자가 바뀌고 커서가 그 위치에서 빠져나갈 때 O라고 글자가 바뀌도록 되어 있다. 

즉, O라는 글자를 누를 때마다 왼쪽으로 1px씩 움직여서 buy lotto 있는 곳까지 가면 URL 해당 경로로가서 클리어가 된다는 뜻이다.


그래서 주소창에 url을 입력해 바로 해당 경로로 가려고 시도해보았다.


 

엑 들켜버렸다....! 


콘솔창(?)에서 O의 왼쪽에 대한 위치값이 초기화되어 있는 부분을 적당히 800에 가까운 수로 바꾸어서 몇 번만 클릭하면 800이 되도록 설정해 보았다.




엔터를 누른 후, 문제 화면에서 문자 O를 클릭 몇 번 하더니 



Clear !!!



[질문]

1. url을 주소창에 직접 입력하여 이동이 안되는 이유

2. location.href 와 this.href 의 차이점은 뭐에요?.?

3. href앞에도 this가 붙여있고 style.posLeft 앞에도 this가 붙어 있던데 this의 용도는 뭐에요??


[답변]

1. 문제를 풀리게 하는 php파일에서 직접 이동으로 문제가 안풀리도록 position 값을 검사한다던지 그런 필터링을 추가해두어서 직접 접근이 안풀리는 거라고 봅니다.

2. location.href나 this.href나 경로 이동해주는 건 같은데, this.href는 현재 파일의 뒤에 해당 경로를 붙여서 이동합니다. 즉 이 문제에서 문제페이지가 index.php라면 this.href="?go=800" 이기 때문에 index.php?go=800 으로 이동!

3. this는 나 자신을 의미합니다. 즉 현재 열려있는 페이지라고 생각하면 됨.

'웹해킹 > [webhacking.kr] ' 카테고리의 다른 글

[webhacking.kr] challenges54  (0) 2017.10.16
[webhacking.kr] challenges20  (0) 2017.10.16
[webhacking.kr] challenges12  (0) 2017.09.25
[webhacking.kr] challenges16  (0) 2017.09.25
[webhacking.kr] challenges14  (0) 2017.09.25