안녕하세요. 정보보안 등대지기입니다.
오늘은 7번 문제를 풀어보도록 하겠습니다.
※ 정답만 보지 마시고 실습을 통해 문제를 직접 풀어보시는 것을 추천드립니다.
7번을 클릭하면 문제 페이지가 등장합니다.
"Do U Like girls?"라고 적혀있는 폼과 아이유 사진과 밑으로 내리면 "YES" 버튼, 더 내리면 윤아의 사진이 등장합니다.
"YES"를 클릭해보니 너무 느리다는 문구가 등장합니다.
이외 문제 페이지에서 얻을만한 힌트는 없다고 판단되어 소스코드를 보았다.
소스보코드에서 위와 같은 힌트를 발견하였습니다.
해석하면,
keyCode 값이 '116' 이거나(||) '9'일 경우 'No!' 라는 메시지를 출력하고 false 값을 반환하거나,
Ctrl을 누르고(누른 상태), keyCode 값이 '78' 이거나 '82'일 경우 false 값을 반환한다.
keyCode 값에 대해 알아보기 위해 검색해보니 아래외 같은 keyCode 변환 값을 알 수 있다.
keyCode 값을 문자로 변환하여 다시 해석하면,
F5(keyCode = 116)나 TAB(keyCode = 9)를 누를 경우 'No!' 메시지를 출력하고 false 값을 반환하거나,
Ctrl+N(keyCode = 78) 나 Ctrl+R(keyCode = 82)을 누를 경우 false 값을 반환한다.
또 다른 힌트는 '더 빠르게 더 빠르게' 라는 힌트가 주어졌다.
힌트들을 조합해보면 'YES' 버튼을 재빠르게 클릭한다면 문제가 해결될 것으로 예상됩니다.
이후 아무리 빠르게 버튼을 클릭해도 느리다는 문구 외에는 다른 반응은 볼 수 없었습니다.
하지만 이보다 더 빠르게 버튼을 누를 수 있는 방법으로 개발자 도구(F12)에서 Console을 이용한 전송입니다.
(Chrome 브라우저에서 해당 기능(Console)을 사용하였습니다.)
Console에서 frm.submit()을 반복적으로 빠르게 빠르게 전송(Enter)해주면 인증키가 등장하여 문제가 해결됩니다!
여기서 frm의 의미는 소스보기에서 body 내 form 태그에서 name의 값(frm)을 사용하였고,
Input 태그 내 'YES'의 값(value)을 갖고 있는 type의 값(submit)을 사용하였습니다.
7번 문제 풀이는 여기서 마치겠습니다.
보안에 관심 있는 분들이 손쉽게 이해하고 접근할 수 있도록 노력하겠습니다 :)
질문 또는 조언해주실 분은 아래 댓글 또는 메일로 남겨주세요.
cjh1503123@naver.com
'suninatas.com > Challenge' 카테고리의 다른 글
suninatas(써니나타스) 5번 문제 풀이 (2) | 2021.01.19 |
---|---|
suninatas(써니나타스) 4번 문제 풀이 (0) | 2021.01.12 |
suninatas(써니나타스) 3번 문제 풀이 (0) | 2020.12.31 |
suninatas(써니나타스) 2번 문제 풀이 (0) | 2020.12.02 |
suninatas(써니나타스) 1번 문제 풀이 (0) | 2020.11.30 |