상세 컨텐츠

본문 제목

[웹해킹] Webhacking.kr 20번 문제 풀이

기타 정보/Webhacking.kr

by Mathgongyoo 2013. 11. 13. 22:38

본문

문제 페이지에 들어가니 위에 코딱지만하게 time limit : 2라는 말이 적혀있다. 아마도 시간안에 제출을 하라는 말인 것 같다.

밑에는 nickname, comment, code를 입력하는 텍스트박스가 있다.

code에는 옆에 랜덤으로 생성되는 문자를 입력하라는 것 같다. 즉, 자동 입력을 방지하도록 되어 있는 것인데,

this is javascript challenge라는 힌트가 있으니 소스보기로 스크립트를 확인해보자.


*


일단 눈에 띄는 문구는 이것이다. lv5frm라는 이름의 폼 안에 attackme라는 녀석이 있는데,

attackme라는 녀석의 value는 값이 자꾸 바뀌는 것 같다. 아마 php스크립트로 서버에서 값을 랜덤하게 생성해서 내주는 것 같다.

어쨌거나 2초만에 값을 받으면 된다고 했으니 이 값을 호출하는 객체가 뭔지만 알면 된다.

그 객체는 다음과 같다.


(lv5frm이라는 폼의 하위 객체인 attackme의 하위 객체(속성)인 value의 값을 호출하라.)


*


그다음은 이녀석이다. 클릭을 하면 ck라는 함수(메서드)를 호출한다. 아마 이것이 핵심일 터다. ck를 확인하러 가자.



lv5frm의 하위 객체의 값을 자꾸 확인한다. id, cmt는 우리가 입력하기로 되어있는 텍스트 박스의 name이다.

hack은 자동입력방지문자를 직접입력하는 공간이다.

if문은 위 객체들의 value 중에 빈 칸이 있으면 포커스를 이동시키고, 아무값도 반환하지 않고 아무것도 실행하지 않은 채 return을 해버린다. 이 if문을 모조리 패스해야 값을 제출할 수 있다.


우리가 해야 할 일은 간단하다. 각 value에 값을 입력하는 스크립트를 짠 후에 Chrome 콘솔창에 복붙만 해주면 되는 것이다.

그 스크립트는 다음과 같이 매우 간단하다.



관련글 더보기