16번 문제를 보면 이렇게 별이 나와있다
첨에 어떻게 접근해야할지 몰라서 아무거나 입력해봤는데 노란색 별표 위에 색별로 작은 별표시가 있는 것을 볼 수 있었다. 이걸로는 문제를 해결할 수 없으니 바로 소스코드를 확인해보자
사실 소스코드를 확인하기 전에 전에 풀었던 문제처럼 쿠키를 편집해야하나 해서
EditThisCookie로 쿠키값을 바꿔야하나 해서 쿠키값을 임의로 막 바꿔봤는데 쿠키값을 잘 못 바꾼 나머지 Webhacking.kr 홈페이지 로그인이 전혀 안되서 진짜 진땀을 뺐었다....ㅎㅎ
아래 소스코드를 확인해보면 마지막 if문에 주석으로 do it!이라고 적혀있는 것을 보고 이 조건문을 실행시켜주어야 할 것 같다고 생각했다.
조건문 실행을 위해 코드를 살펴보면 kk(1, 1) 함수로 별(*)의 처음위치를 정해주고 document.body.innerHTML을 이용하여 별을 추가하여 입력해주는 것 같다.
그리고 body 태그 첫번째 줄에 있는 onkeypress를 통하여 키가 눌려졌을 때 눌려진 키를 event.keycode를 이용하여 아스키코드값으로 바꿔 매개변수로 함수 mv()가 실행된다. 즉, 눌려진 키를 아스키값으로 하여 함수 mv가 실행된다.
event.keyCode
Javascript 로 사용자의 키입력을 감지하여 함수를 처리할 수 있고, ASCII 코드에 기반한다는 특징이 있다.
[참고자료] https://blog.lael.be/post/75
위 아스키코드 값을 참고하여 100, 97, 110, 115, 124의 아스키코드를 살펴보면
100 = 'd'
97 = 'a'
119 = 'w'
115 = 's'
124 = '|'
가 나온다. 따라서 문제를 해결할 수 있는 값인 |(파이프)를 입력하면
문제 해결 완료!!
문제 풀고나서 124 말고 다른 숫자에 해당하는 값도 입력해봤는데
요렇게 입력하는 값에 따라 별이 이동한다! 짱 신기~~
'CTF' 카테고리의 다른 글
[Dreamhack] devtools-sources (0) | 2023.04.01 |
---|---|
[Dreamhack] Carve Party (0) | 2023.03.31 |
[Webhacking.kr] old-20 write-up (0) | 2023.03.29 |
[Webhacking.kr] old-26 write-up (0) | 2023.03.25 |
[Webhacking.kr] old-01 write-up (0) | 2023.03.25 |