16번 문제를 클릭하면 큰별 하나와 작은별 하나가 보인다. 일단 소스코드를 확인하자 4번째 줄에 onkeypress=my(event.keyCode)라는 코드가 있다. onkeypress는 키보드에서 키를 눌렀을때 이벤트를 발생시키는 속성이다. 단, Shift나 Enter, 한/영 등은 인식하지 못한다. event.keyCode는 사용자의 입력키 값을 반환하는 코드이다. 함수 mv()에서는 event.keyCode값이 124일때 location.href=String.fromCharCode(cd)라는 분기문에 의하여어떤 새로운 페이지로 이동하는데, 이 코드를 자세히 살펴보자. location.href location.replace 기능 새로운 페이지로 이동된다. 기존 페이지를 새로운 페이지로 변경시킨다. 형..
14번 문제를 클릭했을떄 화면이다. 입력한 값을 체크하는 것 같은데, 정확히 모르겠으니까 소스코드를 확인한다. function ck()의 내부에서 정답을 확인할 수 있다.변수 ul에 저장되는 값인 document.URL은 현재 페이지의 URL을 의미한다.현재 페이지의 URL은 http://webhacking.kr/challenge/javascript/js1.html 이다. 그 후 ul=ul.indexOf(".kr")에서 ul의 값이 업데이트 되는데,indexOf(".kr")는 부분스트링 ".kr"이 처음 나타나는 위치를 반환하는 함수이다. 그 위치 값은 17이므로ul=ul*30에서 최종적인 ul의 값은 510이 된다. 따라서 510을 입력하면 Password is 510*17 이라는 메시지가 출력될 것이..
17단계를 클릭한 화면이다. 뭔가를 체크하는 것 같은데, 잘 모르겠으니까 소스코드를 확인해본다. 입력 값이 unlock과 같은 경우 Password is unlock/10 라는 메시지가 출력되고, 같지 않은 경우 Wrong이라는 메시지가 출력됨을 확인할 수 있다. 너무 긴 수식이므로 계산기로 계산하였다. unlock 값은 9997809307이다. unlock 값을 입력하니 예상했던대로 Password is 999780930.7 이라는 메시지가 출력되었다. 이 문제의 답은 999780930.7으로 보여진다. 999780930.7을 입력한 결과 17단계가 클리어 되었다.
15번 문제를 클릭하면 Access_Denied라는 대화상자가 출력되고 잠깐 어떤 페이지에 머물렀다가 처음으로 되돌아오게 된다. 잠깐 머무르는 페이지를 확인하기 위해 BurpLoader를 사용하였다. BurpLoader를 이용하면 Forward를 클릭할때까지 '어떤 페이지'에서 초기화면으로 복귀하지 못하도록 할 수 있다.이 페이지를 확인해보니 password is off_script라는 텍스트가 작성되어 있었다.off_script가 15번문제의 답인 것 같다. off_script를 입력하니 15단계가 클리어 되었다!!
webhacking.kr에 접속하면 나타나는 화면이다. 로그인 버튼은 있지만 회원 가입 버튼이 없다. 따라서 소스코드를 확인하였다. 페이지 소스코드에서 주석처리된 부분에 회원가입 페이지의 주소가 적혀있다. join/includ2_join__frm__0001.php?mode=6ca6dfd3d19a4c06d8cbb0f8d0c6f2d5 를 복사해서 webhacking.kr/ 뒤에 붙여넣기하면 회원가입 페이지로 이동할 수 있다. ID, PW, EMAIL은 원하는대로 작성하면 되지만 decode me 부분을 해결해야 한다. 즉, VGxScmRVMXFXWFZPZWtGMVRWUkJQUT09를 decode 하라는 이야기이다. 프로그래밍할때 다양한 인코드/디코드 기법이 사용된다. 대표적으로 UTF-8, 아스키 코드, B..