티스토리 뷰

hacking/webhacking.kr

<webhacking.kr> - 16번

khe0616 2018. 1. 13. 15:10

16번 문제를 클릭하면 큰별 하나와 작은별 하나가 보인다.

일단 소스코드를 확인하자









4번째 줄에 onkeypress=my(event.keyCode)라는 코드가 있다. 

onkeypress는 키보드에서 키를 눌렀을때 이벤트를 발생시키는 속성이다.

 단, Shift나 Enter, 한/영 등은 인식하지 못한다.


event.keyCode는 사용자의 입력키 값을 반환하는 코드이다.

함수 mv()에서는 event.keyCode값이 124일때

location.href=String.fromCharCode(cd)라는 분기문에 의하여

어떤 새로운 페이지로 이동하는데, 이 코드를 자세히 살펴보자.


 

 location.href

 location.replace

 기능

 새로운 페이지로 이동된다.

 기존 페이지를 새로운 페이지로 변경시킨다.

 형태

속성 

메서드 

주소 히스토리 

기록된다. 

기록되지 않는다. 

사용예 

location.href='abc.php' 

location.replace('abc.php') 

href     -> 일반적인 페이지 이동시에 사용

replace -> 이전페이지로 접근이 필요없는 경우 사용



String.fromCharCode(cd) -> cd를 아스키코드의 문자(character)로 변환하는 함수


https://blog.outsider.ne.kr/322      <-아스키 코드표를 확인할 수 있는 페이지

이 페이지에서 확인해보면 124는 |이다.






따라서, 16번문제에서 키보드의 |를 누르거나

개발자 도구(f12)에서 아래와 같이 입력한다면









16번 문제의 패스워드가 담겨 있는 페이지가 실행된다!

패스워드는 webhacking.kr이라고 한다.








webhacking.kr를 입력하니 16단계가 클리어되었다







<추가>

onmouseover -> 해당 이벤트를 사용한 영역에 마우스 커서를 올렸을 때 이벤트를 발생시킨다.

Math.floor() -> 소수점 버리면서 내림한다.

                    Math.floor(153.2) = 153     Math.floor(-153.3) = -154

onload         ->  body를 로드할때 실행할 내용

onkeypress    ->  body가 활성화된 상태에서 아무키나 눌렀을때 실행할 내용

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

<webhacking.kr> - 20번  (0) 2018.01.17
<webhacking.kr> - 54번  (0) 2018.01.16
<webhacking.kr> - 14번  (0) 2018.01.12
<webhacking.kr> - 17번  (0) 2018.01.12
<webhacking.kr> - 15번  (0) 2018.01.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함