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을 막고 있다.
브라우저에서 새로고침이 가능하고, 버튼을 눌렀을 때 자동적으로 새로고침이 되므로 사실 이 문제에서 그렇게 중요한 부분은 아닌 것 같다.
'해킹 > suninatas (써니나타스)' 카테고리의 다른 글
써니나타스 웹 22번 풀이(작성중) (0) | 2022.06.04 |
---|---|
써니나타스 웹 8번 풀이 (0) | 2022.06.03 |
써니나타스 웹 6번 풀이 (0) | 2022.06.01 |
써니나타스 웹 4번 풀이(작성중 (0) | 2022.05.17 |
써니나타스 웹 3번 풀이(작성중 (0) | 2022.05.16 |