DoR@Hee의 끄적끄적

webhacking.kr 20번 본문

WarGame/WebHacking.kr

webhacking.kr 20번

DoR@Hee 2019. 2. 15. 17:00


문제 첫화면 time limit: 2라는 문자열이 보이고 nickname, commit code를 입력해 submit하는 문제같다. 

근대 프로그래밍 문제는 아니고 javascript문제라고한다.


폼태그 내용을 정리해보면

<input type="text" name="id" size="10" maxlength="10">


<input type="text" name="cmt" size="50" maxlength="50">

<input type="text" name="hack">

<input type="button" name="attackme" value="uisuibkfuu" style="border:0;background=lightgreen" 

onmouseover="this.style.font=size=30" onmouseout="this.style.font=size=15" size="15">


이렇게 구성돼있고 javascript를 보면


function ck() { if(lv5frm.id.value=="") { lv5frm.id.focus(); return; } if(lv5frm.cmt.value=="") { lv5frm.cmt.focus(); return; } if(lv5frm.hack.value=="") { lv5frm.hack.focus(); return; } if(lv5frm.hack.value!=lv5frm.attackme.value) { lv5frm.hack.focus(); return; } lv5frm.submit(); }

이렇게 로직이 구현돼있다 즉

id value가 공백이라면 foucs

cmt value가 공백이라면 foucs

hack value가 공백이라면 foucs

hack value와 attackme value가 같지 않다면 foucs

그래서 이렇게 입력을 해봤고


결과는 wrong



그러면서 새로운 문자열이 생겨났다. 

계속해서 똑같은 방법으로 입력한 결과 계속해서 문자열이 바뀌었고

결론은 time limit: 2가 힌트인걸 유추 할 수 있었다.

2는 2초, 또는 2분이라는건대 2분은 아닌거같고

2초라는거같다. 근데 2초안에 입력하는건 무리


그래서


if(lv5frm.id.value=="") { lv5frm.id.focus(); return; } if(lv5frm.cmt.value=="") { lv5frm.cmt.focus(); return; } if(lv5frm.hack.value=="") { lv5frm.hack.focus(); return; } if(lv5frm.hack.value!=lv5frm.attackme.value) { lv5frm.hack.focus(); return; } lv5frm.submit();

클라이언트에서 script부분은 언제든지 수정이 가능하니 이 부분을 건드려보기로했다.

이런식으로 로직을 구현했고


성공



'WarGame > WebHacking.kr' 카테고리의 다른 글

webhacking.kr 22번  (0) 2019.02.15
webhacking.kr 21번  (0) 2019.02.15
webhacking.kr 19번  (0) 2019.02.15
webhacking.kr 18번  (0) 2019.02.15
webhacking.kr 17번  (0) 2019.02.15
Comments