카테고리 없음

[워게임/웹 해킹] webhacking.kr old-14

공지혜 2026. 5. 7. 11:50

https://webhacking.kr/challenge/js-1/

 

Challenge 14

 

webhacking.kr

 

 

들어가자마자 배경이 까만 화면이라서 개발자 도구 > 요소에서 배경을 밝은 색으로 바꿔 보았다.

숨겨진 글자 같은 건 없었다.

 

자바 스크립트 소스 코드를 살펴 보니, else문에서 "Wrong"이 보인다. 그니까 if문 조건을 맞춰야 하는 것이다.

ul==pw.input_pwd.value를 만들어야 한다.

pw.input_pwd.value가 어떤 구조인지 한번 보면, 라이언이 가리키고 있는 곳을 보면 된다. 제일 바깥쪽 입력창을 감싸는 폼의 이름이 name=pw, 진짜 입력창의 이름이 name=input_pwd라고 나와 있다. 마지막 value는 입력창에 입력된 '값'을 나타내는 것이다.

따라서 ul이 주어진 값, pw.input_pwd.value가 내가 입력해야 하는 값이다.

 

우선 이 페이지의 URL을 ul 변수로 가져온다. 

그리고 ul값을 ul.indexOf(".kr")로 바꾼다. indexOf() 함수는, 문자열에서 특정값이 처음으로 나타나는 위치(인덱스)를 반환해 주는 함수다. 값을 찾지 못하면 -1을 반환한다.

해당 url에서 "."까지의 글자 수를 세어 보면 19 글자이다.

그런데 indexOf()는 문자열인덱스를 0부터 시작하므로 실제 반환값은 18이 된다. 

ul=ul*30까지 하면 최종 ul=540이 된다.

입력창에 540을 입력했더니 풀렸다!

 

아까 if문을 통과했을 때 조건문을 보면, 현재 url에 ? + ul * pw.input_pwd.value을 덧붙인다고 쓰여 있다.

location.href가 기존 url에 저 값을 덧붙인다는 뜻이다.

그래서 성공 화면이 뜬 뒤 url도 확인해 봤더니 ?291600(=540*540)이 붙은 걸 볼 수 있었다.