webhacking.kr old-20 write-up

문제 첫 화면이다. input들이 있고 인증문자가 있는것같다. 대충 입력하고 submit을 해보니 Too slow... 라는 문구를 띄우고 다시 돌아온다. 아마도 저 중앙 상단에 적혀있는 time limit 2 second가 있는걸 봐서는 입력을 2초안에 해야하는듯하다.

코드를 살펴보니 이상한점이 있다. submit을 자바스크립트 함수로 구현되어있다. 콘솔로 ck()를 입력해보니 예상대로 submit을 수행해준다.
또 하나 이상한점이 있었다.

쿠키 값이 설정되어있다. 값을 보자마자 떠오른것이 timestamp였다. 확인해보니 맞았다. 아마 이 쿠키값이 2 second의 기준이 되는듯하다. timestamp값을 먼 미래로 놓고 제출하면 되지 않을까 생각해서 해보았다.

이미 예상된 파훼법이었다. 그렇다면 문제를 풀 방법이 결국 2초안에 최대한 빨리 입력해서 submit하는 방법뿐이다.

여기서 자바스크립트로 submit이 구현되어있다는 점에 집중해야한다. 심지어 captcha값도 html element로 구성되어있다. 즉, 자바스크립트로 모든 값을 한번에 입력할수있다는 것이다. 또한, 쿠키값도 new Date().getTime()으로 현재 timestamp값으로 설정할 수 있으므로 코드만 짜서 새로고침한 후에 콘솔로 바로 입력해주면 되는것이다. 코드를 간단히 짜보았다.

var setcookie=function(name,value){
    document.cookie=name+"="+value;
};
setcookie("st",new Date().getTime());
lv5frm.id.value=123;
lv5frm.cmt.value=123;
lv5frm.captcha.value=lv5frm.captcha_.value;
ck();

위 설명대로 해주면

solved!!

좋은 웹페이지 즐겨찾기