인디안 보호구역
WebHacking.kr 16 본문
“스크립트 분석 -> 실행 -> 문제 해결”
-
문제 분석 - 코드 확인
페이지 스크립트를 확인.
>> ‘F12’ 를 눌러서 크롬 개발자 도구를 연다.
>> ‘Elements’ 패널에서 페이지 요소 중 특이한 점 있는지 확인한다.
>> onload 이벤트를 통해 페이지에 진입하면 kk() 함수가 실행된다.
>> onkeypress 이벤트를 통해 페이지에 진입 후 키보드 상의 아무 키나 누르게 되면, mv 함수가 해당 키보드 자판값을 인자로 가지며 실행된다.
>> onmouseover 이벤트를 통해 left=1, top=1의 위치에 있는 문자열 ‘*’에 마우스 포인터가 진입할 경우 innerHTML의 설정값을 NULL로 초기화한다. (폰트 값이나 위치 값 등등이 싹 사라짐)
kk() 함수의 기능 확인.
>> 랜덤한 값을 생성하여 정수가 될 수 있도록 반올림한다.(해당 페이지에서는 반올림 안해도 정수이고 문자’*’에 색깔을 입히기 위한 값이다.)
>> onmouseover 이벤트를 통해 left=1, top=1의 위치에 있는 문자열 ‘*’에 마우스 포인터가 진입할 경우 innerHTML의 설정값을 NULL로 초기화한다.
mv() 함수의 기능 확인.
>> kk()함수를 호출한다. star(제일 큰 별)의 left 위치와 top 위치를 화면 밖으로 내보낸다..?
>> mv() 함수의 인자인 cd를 통해 5가지의 제어문을 실행한다.
-
1~4번 제어문은 star의 위치를 변경한다.
-
5번째 제어문은 페이지를 이동시킨다.
-
주의사항은 이동 시 키보드 킷 값을 통해 이동하기 때문에
적절한 값(124)을 넣지 않으면 5번 제어문이 실행되지 않는다는 것이다.
2. 문제 해결 - 콘솔 패널 사용
keyCode는 124여야 하므로 키보드 값 중 124가 무엇인지 확인해야 한다.
Keyboard Ascii Code로 검색해서 찾아볼 수도 있고, 더 간단하게는 아래 Console panel에서 fromCharCode() 함수를 이용하여 확인할 수 있다.
파이프 문자열 | (shift+\) 임을 확인하고 해당 페이지에서 입력하면 Password 값이 적힌 페이지로 이동하게 된다.
더 쉽게는 Console panel에서 mv(124); 함수를 실행하면 된다.
근데 아쉽게도 문제가 뜻하는 바가 무엇인지 아직 이해를 못하고 있다.
2. 배운 점
-
onload, onkeypress, onmouseover 이벤트 사용법
-
innerHTML (이건 아직 헷갈림.)
-
location.href 속성 사용법
-
String.fromCharCode() 함수 사용법
3. 참고 링크
'Study > WebHacking 공부하는 인디안' 카테고리의 다른 글
Webhacking.kr 24 (0) | 2019.05.25 |
---|---|
WebHacking.kr 32 (0) | 2019.05.22 |
Webhacking.kr 10 (0) | 2019.05.19 |
WebHacking.kr 14 (0) | 2019.05.11 |
WebHacking.kr 1 (0) | 2019.05.11 |