본문 바로가기
해킹/suninatas (써니나타스)

써니나타스 웹 7번 풀이

by yenua 2022. 6. 2.
반응형

http://suninatas.com/challenge/web07/web07.asp

 

웹 화면을 보면 매우 큰 사진 두개 사이에 yes라는 작은 버튼 하나가 끼어있다.

 

위의 사진과 버튼, 버튼과 아래 사진과는 무수히 많은 <br> 태그가 있어서 일반적으로는 스크롤을 많이 내려야 버튼이나 아래 사진을 볼 수 있게 된다.

 

버튼을 그냥 눌러보면 아래와 같이 너무 느리다는 문구가 뜬다.

힌트를 보면 최대한 빨리 누르라는 것 같아보인다.

 

새로고침이 되자마자 바로 누르라는 것 같은데, 버튼 같은 경우에 form 을 통해서 submit이 된다. 이를 이용해서  csrf 에서 자주 쓰이기도 하는데, 자바 스크립트를 이용하여 이를 자동으로 보내줄 수 있게 하는 것이 있다.

 

location.reload()
document.frm.submit();

 

첫줄은 화면 새로고침, 아랫줄은 form을 제출하는 스크립트 명령어이다.

 

 

다른 write-up들을 보니 그냥 frm.submit()만 빠르게 입력하다보면 된다는데, 나는 잘 안되었다.

첫줄을 location.href="http://suninatas.com/challenge/web07/web07.asp" 로 입력해도 마찬가지..

 

그래서 최대한으로 축소를 시켜준다음, 수강신청을 하는 느낌으로 버튼 위에 마우스를 올린 뒤 버튼을 누르고 느리다는 창이 뜨면 엔터 후 바로 클릭을 하면

통과 할 수 있다. 넘어간 페이지에서 인증키를 획득할 수 있다.

Authkey : G0Od d@y

 

 

 

+) 소스코드를 보면 이벤트를 처리하는 함수가 있다.

    <script>
        function noEvent() {
            if (event.keyCode == 116 || event.keyCode == 9) {
                alert('No!');
                return false;
            }
            else if (event.ctrlKey && (event.keyCode = 78 || event.keyCode == 82)) {
                return false;
            }
        }
        document.onkeydown = noEvent;
    </script>

아래 링크를 참고하면 keyCode 116, 9는 각각 F5 와 Tab을 나타낸다. 새로고침하는 키와, 탭을 통해 버튼으로 이동하는 것을 막은 듯 보인다.

else if 문은 ctrl + r, n을 막고 있다.

브라우저에서 새로고침이 가능하고, 버튼을 눌렀을 때 자동적으로 새로고침이 되므로 사실 이 문제에서 그렇게 중요한 부분은 아닌 것 같다.

https://blog.lael.be/post/75

 

[Javascript] event.keyCode 코드값

배경 Javascript 로 사용자의 키입력을 감지하여 함수를 처리할 수 있습니다.   이론 event.keyCode 는 ASCII 코드에 기반합니다.   내용 자주 사용되는 keyCode 값은 다음과 같습니다.   Key Code Reference Table

blog.lael.be

 

 

 

반응형