인디안 보호구역

WebHacking.kr 16 본문

Study/WebHacking 공부하는 인디안

WebHacking.kr 16

Indie-An 2019. 5. 11. 21:00

“스크립트 분석 -> 실행 -> 문제 해결”

 

  1. 문제 분석 - 코드 확인

 

 

페이지 스크립트를 확인.

>> ‘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
Comments