안녕하세요. 오늘은 webhacking 14번 문제를 풀어보겠습니다.
홈페이지로 들어가 webhacking 14번을 눌러주세요.
참 간단해보이는군요. 소스를 한 번 봅시다.
function은 사용자 정의 함수입니다. 자세한 건 php함수 설명 항목을 참고해 주세요.
ul이란 변수에 document.URL 값을 넣습니다.
var이 쓰인걸로 보아 이 언어는 php언어가 아닌 자바스크립트 언어인 것 같습니다.
그리고 ul에 ul.indexOF(".kr")의 값을 집어넣는다는군요..
자바스크립트 함수인 indexOf 는 문자열 안에 조건이 되는 문자열이 몇 번째 위치에 존재하는지를 확인하는 함수입니다. 사용법은
"[문자열]".indexOf("[검색할 문자열]", [검색시작위치]);
입니다.
위의 소스 ul=ul.indexOf(".kr")를 해석해보자면
변수 ul에 들어있는 문자열 중 .kr이 시작되는 위치를 숫자로 표현하여 다시 ul에 저장시킨다는 군요. 검색시작위치는 생략되었습니다.
그다음은 ul*30의 값을 ul에 저장시키구요.
그 ul이랑 pw.input_pwd.value를 비교하여 값이 같으면 패스워드를 출력한다네요.
pw.input_pwd.value는 저 상자를 의미하겠군요. ul값을 저 상자에 넣으면 되는 것 같습니다.
일단 ul을 계산해 보겠습니다.
document.URL은 현주소를 의미합니다.
즉 ul에 http://webhacking.kr/challenge/javascript/js1.html란 값을 넣는다는 것이지요.
그다음은 .kr의 위치를 숫자로 변환하여 저장시키지요?
18번째에 있네요. 단 indexOf는 첫위치를 0으로 인식하니까 실제로 저장되는 값은 17입니다.
17*30은 510입니다. 즉 최종으로 ul엔 510이 들어가 있습니다.
510을 한 번 넣어 봅시다.
성공적으로 패스워드가 떴습니다. auth로 가서 인증해봅시다.
전송을 눌러줍시다.
네 이것으로 문제풀이를 마치겠습니다.
'Webhacking' 카테고리의 다른 글
webhacking 19번 문제 (0) | 2015.10.15 |
---|---|
webhacking 16번 문제 (0) | 2015.10.13 |
webhacking 4번 문제 (0) | 2015.10.13 |
webhacking 6번 문제 (0) | 2015.10.12 |
webhacking 15번 문제 (0) | 2015.10.12 |