개발 블로그

Suninatas(써니나타스) challenge 2 / Web 본문

해킹 및 보안/Suninatas

Suninatas(써니나타스) challenge 2 / Web

갹둥 2022. 8. 22. 14:01

화면에 아이디와 패스워드를 입력하는 창이 뜬다. 아무거나 입력하면 아무 일도 발생하지 않는다.

개발자 모드(F12)로 소스코드를 확인해 보았다. 스크립트 부분에 아래와 같은 chk_form() 함수가 있었다.

<script>
	function chk_form(){
		var id = document.web02.id.value ;
		var pw = document.web02.pw.value ;
		if ( id == pw )
		{
			alert("You can't join! Try again");
			document.web02.id.focus();
			document.web02.id.value = "";
			document.web02.pw.value = "";
		}
		else
		{
			document.web02.submit();
		}
	}
</script>
<!-- Hint : Join / id = pw -->
<!-- M@de by 2theT0P -->

id와 pw가 같으면 풀리는 문제인 것 같다. 하지만 id와 pw 폼에 같은 값을 입력한 후 제출하면 경고창이 뜨고 폼이 초기화된다. 하지만 else 부분을 보면 document.web02.submit();이라고 쓰여 있다. 콘솔로 이것을 직접 입력해주면 id와 pw에 같은 값이 들어있어도 우회할 수 있다.

id와 pw에 같은 값을 넣어준 후 콘솔에 document.web02.submit()을 입력하면 Authkey를 획득할 수 있다.