DoR@Hee의 끄적끄적
webhacking.kr 20번 본문
문제 첫화면 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 |