해킹/webhacking.kr

초보 webhacking.kr - old-14 write-up

hellowhales 2023. 5. 25. 16:23
728x90

 

Write-Up


이번 문제는 딱히 필요한 지식이 없네요 Javascript 언어만 어느정도 알면 풀 수 있는 문제입니다. 바로 풀어보겠습니다. 

들어가니 사용자 입력을 받는 입력창이 나오네요. 페이지 소스 보기로 code를 보겠습니다.

<html>
<head>
<title>Challenge 14</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
</style>
</head>
<body>
<br><br>
<form name=pw onsubmit=ck()><input type=text name=input_pwd><input type=button value="check" onclick=ck()></form>
<script>
function ck(){
  var ul=document.URL;
  ul=ul.indexOf(".kr");
  ul=ul*30;
  if(ul==pw.input_pwd.value) { location.href="?"+ul*pw.input_pwd.value; }
  else { alert("Wrong"); }
  return false;
}
</script>
</body>
</html>

form 태그로 묶어서 입력창이 만들어지네요. 찾아보니 여러가지 사용자 의견이나 정보를 입력할 때 사용하는 태그더군요.

https://www.nextree.co.kr/p8428/

 

HTML : 폼(form) 이해

폼은 알게 모르게 웹에서 많이 사용합니다. 사용자 의견이나 정보를 알기 위해 입력할 큰 틀을 만드는 데 사용되기 때문입니다. 폼은 입력된 데이터를 한 번에 서버로 전송합니다. 전송한 데이

www.nextree.co.kr

자세한건 위 링크를 참조하시면 되겠습니다. name 속성이 이름이겠고 onsumit =ck() 는 form 태그 안에서 전송하기 전에 입력된 데이터의 유효성을 검사하는 속성이라 하네요. 그리고 뒤에 input 태그들은 각각 텍스트 박스와 onclick 버튼입니다.

 

내려와서 Javascript의 내용을 보겠습니다. document.URL은 현재 페이지의 주소를 가져오는 변수입니다. 그리고 indexOf 로 .kr이 몇번째에 나오는지 확인해주네요. 거기에 30을 더한값이 flag로 가는 정답인거 같습니다. 웹 브라우저는 자체적으로 js 인터프리터를 제공하므로 F12를 눌러 console 풀어보겠습니다.

그냥 그대로 복붙해서 넣었습니다. 540이 나오네요.

이미 풀었던거라 이렇게 나오네요ㅎㅎ

After Review


일단 자바스크립트 문법이 좀더 알아보기도 쉽고해서 자바스크립트 문제를 위주로 풀고있습니다. php를 쓰는 문제는 php를 거의 모르기 때문에 좀 공부를 하거나 아니면 시간이 좀 더 여유로울때 풀어볼라 그래요. 그래도 이런 쉬운 문제들이 있어서 푸는 맛이 있네요. 

감사합니다. 

728x90