ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Webhacking.kr] Challenge 54
    Wargame/Webhacking.kr 2023. 4. 1. 02:02
    반응형

    Challenge 54를 풀어보자.

     

    문제 화면을 보면 Password is 라는 문장과 함께 뒤의 값이 계속해서 변한다.

    변화하는 값이 FLAG{ 라는 것은 알았지만, 동체시력의 한계 탓인지 더 이상은 모르겠다..  

    <Challenge 54의 문제 화면>

     

    소스 코드를 보여주는 링크가 없으므로, 크롬 개발자 도구를 열어서 페이지를 확인해보도록 하자.

     <script>를 보면 run과 answer의 함수가 있다.

    run 함수는 값을 받아와 그것을 return하는 것 같다.

    answer는 aview에 값을 입력하는데 setTimeout이 작아 굉장히 빠르게 넘어가는 것으로 보인다.

     

    이 answer 함수가 페이지에 비밀번호를 보여주는 함수라고 생각하면 될 듯하다. 

    <Challenge 54 문제의 script 코드>

     

    빠르게 넘어가는 비밀번호를 강제로 멈춰주면서 FLAG를 확인해 문제를 해결하면 된다.

    Sources 페이지로 와 브레이크 포인트를 걸어주도록 하자. 

    <브레이크 포인트 설정>

     

    20번 라인인 x에 run 함수를 수행하기 전 브레이크 포인트를 걸어주면서 비밀번호가 변하는 과정을 보았다.

    answer가 총 38번 실행되면서 비밀번호가 꽤 긴 것을 알 수 있다.

    멈춘 페이지를 종합하여 FLAG 값을 알 수 있다. 

    <FLAG 값 도출>

     

    구한 FLAG 값을 메인 페이지의 Auth 창에 입력하면 문제가 해결된다. 

    <Challenge 54 문제 완료>

     

    브레이크 포인트를 이용한 풀이는 문제를 푸는 속도가 빠르지 않다.

    더 빠르고 쉽게 문제를 해결해보도록 하자.

     

    answer 함수를 잘 보면, 비밀번호가 표시되는 aview에 innerHTML로 화면에 출력을 하고 있다.

    aview.innerHTML에 단순히 '='이 아닌 '+='으로 바꿔 입력이 유지되도록 한다.

    그리고 입력이 없을 때 ?로 바꾸는 if 문을 삭제한 후, 함수를 실행하면 아래 사진처럼 FLAG가 출력된다.

    <Challenge 54 문제 다른 풀이>

    반응형

    'Wargame > Webhacking.kr' 카테고리의 다른 글

    [Webhacking.kr] Challenge 17  (0) 2023.04.09
    [Webhacking.kr] Challenge 14  (0) 2023.04.09
    [Webhacking.kr] Challenge 39  (0) 2023.03.31
    [Webhacking.kr] Challenge 16  (0) 2023.03.31
    [Webhacking.kr] Challenge 26  (0) 2023.03.31

    댓글

Designed by Tistory.