본문 바로가기

보안공부/Webhacking.kr 풀이

webhacking.kr 14번 문제 풀이 - indexOf

WEBHACKING.KR 14번 문제 풀이

[ indexOf ]


오늘은 webhacking.kr의 1번 문제를 풀어보자.


문제에 들어가면 다음과 같이 폼 하나가 기다리고 있을것이다


우리는 이 폼의 용도를 모르니 우리가 매일 눌러보는 페이지 소스보기로 저 폼에 연결된 부분이 있는지 확인해보자


Javascript를 통해 연결된 폼이었다.

이 부분이 저 폼에 대한 정보인데, 만약 check 버튼이 눌러지면 chk() 함수를 실행하고,

<form name=pw><input type=text name=input_pwd><input type=button value="check" onclick=ck()></form>


chk()함수가 실행되면 해당 페이지의 링크(http://webhacking.kr)를 불러와 .kr까지의 길이를 측정하고 이에 30을 곱한값과

name이 pw인 input폼에서 받아온 데이터와 대조하여

참이면 비밀번호를 계산해주고, 거짓이면 Wrong이라는 메시지를 담은 팝업을 띄워준다.

<script>
function ck()
{
var ul=document.URL;
ul=ul.indexOf(".kr");
ul=ul*30;
if(ul==pw.input_pwd.value) { alert("Password is "+ul*pw.input_pwd.value); }
else { alert("Wrong"); }
}
</script>


자 그럼 저기에 넣어야 할 값을 계산해보자.

 .kr까지의 길이만을 계산하니 http://webhacking 만큼의 글자수를 구하면 되는데, 이는 17자이다.

하지만, 해당 조건문을 참으로 만들어 실행하려면 30을 곱한값을 입력해줘야 한다.


따라서 17 * 30 = 510

즉 우리가 입력해줄 값은 510이다.


그럼 이제 입력해줘야할 값을 구했으니 입력해보자.


510을 넣고 check 버튼을 눌렀더니 다음과 같이 플래그 값이 도출되었다.


그리고 이 비밀번호 값이 이 문제에 대한 답이었다.



WEBHACKING.KR 14번 문제 클리어!