ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Webhacking.kr] 16번 풀이
    Wargame/webhacking.kr (old) 2019. 4. 19. 21:03


    화면에 별만 나와있다.

    소스 코드를 보자!



    소스 코드를 보니 mv함수가 정의되어 있다.

    mv함수는 event.keyCode인 것을 보니 특정 키를 누르면 실행되는 함수이다.

    mv함수를 해석해보았다.


    kk(x,y) 랜던 값의 색을 가진 *을 x, y값에 맞게 화면에 추가

    mv함수의 매개변수인 cd가 100일 경우, 별 왼쪽으로 +50 이동

    97일 경우, 별 왼쪽으로 -50 이동

    119일 경우, 별 위쪽에서 -50 이동 (아래로 이동)

    115일 경우, 별 위쪽에서 +50 이동 (위로 이동)

    124이면, 특정 주소로 이동


    우선 mv함수를 실행해보기 위해 keycode 정리표의 값대로 키를 눌러보았으나,

    mv함수대로 별이 이동하지 않았다.


    다른 방법이 무엇이 있을까 생각하다가 아스키 값을 이용해보기로 하였다.

    아스키 코드표는 아래와 같다.


    [출처] https://simple.wikipedia.org/wiki/ASCII


    100 : d (→)

    97 : a (←)

    119 : w (↑)

    115 : s (↓)

    124 : | (파이프)


    아래 사진과 같이 해당 키를 누르면 별이 움직이는 것을 확인할 수 있다.

    만약, 별이 움직이지 않는다면 Internet Explorer를 이용하면 된다.

    왜인지는 모르겠으나, Chrome에서는 별이 움직이지 않는다...;;



    별이 움직이는 것을 확인하였으니,

    어딘가로 이동하는 의심스러운 124번의 키 코드를 가진 |(shift + \)를 눌러보았더니

    아래와 같이 password를 알려주는 페이지로 이동하였다.



    알아낸 password를 Auth페이지에 인증하면 문제가 풀린다.

    (Chrome에서 별이 움직이는 것은 확인할 수 없지만 소스 코드는 정상작동 하기 때문에

    |를 누르면 password를 알려주는 페이지로 이동한다.)




    키를 직접 눌리는 방법 말고도 이 문제를 풀 수 있다.

    그것은 바로 아주 유용한 도구인 개발자 도구를 이용하는 방법이다.


    아래와 같이 Console창에 mv함수를 정의해주고,

    mv(124)를 실행시켜주면, 아까와 같은 password를 알려주는 페이지로 이동한다.



    'Wargame > webhacking.kr (old)' 카테고리의 다른 글

    [Webhacking.kr] 18번 풀이  (0) 2019.04.19
    [Webhacking.kr] 17번 풀이  (0) 2019.04.19
    [Webhacking.kr] 16번 풀이  (0) 2019.04.19
    [Webhacking.kr] 15번 풀이  (0) 2019.04.19
    [Webhacking.kr] 14번 풀이  (0) 2019.04.18
    [Webhacking.kr] 13번 풀이  (0) 2019.04.16

    댓글 0

@Jo Grini's Blog