본문 바로가기
Webhacking.kr

[Webhacking.kr] old 20 해설

by ris 2025. 1. 4.

console을 활용하면 되는 문제였습니다.

개발자 모드에서 console은 클라이언트 입장에서 직접 DOM에 js를 실행하는 것으로 클라이언트에서 정보를 얻을 수 있는 상황에서는 매우 유용한 툴입니다.

 

 

문제입니다.

time limit는 2초입니다.

 

<html><head>
<title>Challenge 20</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
input { background:silver; color:black; font-size:9pt; }
</style>
</head>
<body>
<center><font size="2">time limit : 2 second</font></center>
<form name="lv5frm" method="post">
<table border="0">
<tbody><tr><td>nickname</td><td><input type="text" name="id" size="10" maxlength="10"></td></tr>
<tr><td>comment</td><td><input type="text" name="cmt" size="50" maxlength="50"></td></tr>
<tr><td>captcha</td><td><input type="text" name="captcha"><input type="button" name="captcha_" value="VvfSVzTaoO" style="border:0;background=lightgreen"></td></tr>
<tr><td><input type="button" value="Submit" onclick="ck()"></td><td><input type="reset" value="reset"></td></tr>
</tbody></table>
<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>


</form></body></html>

 

문제 코드입니다.

코드에 time limit 가 없는 걸 보니 php 혹은 다른 server side 언어로 처리한 것 같습니다.

time limit를 변조하는 방식은 통하지 않을 것 같습니다.

 

그럼 console을 사용하여 js로 각 요소의 value값을 임의로 집어넣으면 됩니다.

 

document.getElementsByName('id')[0].value = 'hello';
document.getElementsByName('cmt')[0].value = 'hello';
document.getElementsByName('captcha')[0].value = document.getElementsByName('captcha_')[0].value;
ck();

 

 

이를 창을 새로고침하고 바로 console에 실행시키면 풀리게 됩니다.

 

'Webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] old-39 풀이  (0) 2024.12.29
[Webhacking.kr] old-38 풀이  (1) 2024.12.15
[Webhacking.kr] old-54 풀이  (1) 2024.12.14
[Webhacking.kr] old-24 풀이  (0) 2024.12.14
[Webhacking.kr] old-01 풀이  (0) 2024.12.14