티스토리 뷰
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 |