프로젝트/Webhacking.kr

[Webhacking.kr] Challenge(old) 20번 문제

Uggjjini 2021. 7. 7. 09:44

문제 페이지는 해당 페이지와 같다.

 

 

해당 페이지에는 nickname, comment, captcha 3개의 입력창이 존재하며 submit 버튼과 reset 버튼이 존재한다.

 

또한 time limit : 2 second 라는 문구도 존재하는 것을 확인 할 수 있다.

 

먼저 페이지의 소스 코드를 살펴본다.

 

 

script 부분을 중심으로 해석한다.

 

<script>
function ck(){
  if(lv5frm.id.value=="") { lv5frm.id.focus(); return; }
  if(lv5frm.cmt.value=="") { lv5frm.cmt.focus(); return; }
  if(lv5frm.captcha.value=="") { lv5frm.captcha.focus(); return; }
  if(lv5frm.captcha.value!=lv5frm.captcha_.value) { lv5frm.captcha.focus(); return; }
  lv5frm.submit();
}
</script>

 

id, comment, captcha의 입력값이 공란이면 retrun 된다는 것을 알 수 있다.

 

lv5frm.captcha.value 값이 lv5frm.captcha_.value값과 같지 않은 경우에도 리턴 되는 것을 볼 수 있다.

 

lv5frm.captcha_.value값이 무엇인지 개발자 도구의 Console 기능을 이용해 알아본다.

 

 

lv5frm.captcha_.value값은 captcha 입력창 옆에 있는 문자인것을 알 수 있었다.

 

결론적으로 id, comment, captcha 입력창을 공란으로 비워두면 안되며, captcha 입력창에는 주어진 문자를 입력하여 제출해야 한다.

 

그래서 임의로 nickname과 comment 입력창에는 1을 입력하고 captcha 입력칸에는 주어진 문자를 입력하여 제출하였다.

 

 

 

제출 시에 Wrong Captcha 문구가 뜨는 페이지로 이동하는 것을 확인 할 수 있었다.

 

메인 페이지 상단의 문구인 "time limit: 2 second" 로 보아 해당 입력동작을 2초 안에 시도해야 하는 것 같다.

 

하지만 2초안에 모든 입력을 완료하고 제출하는 것은 힘들기 때문에 개발자 도구의 console 기능을 이용하여 입력값을 지정하여 한번에 동작시킨다.

 

 

새로고침을 하자마자 상단의 값을 Console 창에 입력해준다.

 

문제가 풀리는 것을 확인할 수 있었다.