대놓고 javascript challenge라고 한다.
javascript 문제가 틀림없으니 개발자 도구를 열어보자
와 욕나올 뻔했다 ㅎㅎ
열심히 난독화 해둔 이 javascript는 대체 무슨 내용일까...
우선 보기가 너무 힘드니, javascript 내용을 복사하여 beautify 해보았다.
총 22줄의 코드가 나왔다. beautify를 하면 보기 편할것이라는 나의 생각은 틀렸다...
일단 해당 코드를 분석해보기 위해, 개발자도구 console에 입력하여 실행시켜 보았다.
결과는 undefined... undefined란 정의되지 않았다...
이 결과를 통해 지금 실행한 구문이 무언가 함수를 실행한다는 것을 알 수 있었다.
그래서 코드를 찬찬히 보던 와중, 맨 마지막에 ('_'); 요부분이 눈에 띄었다.
대충 보아하니... 함수에 인자를 넘겨준 뒤 실행시키는 구문이구나 싶어,
이부분을 제거하고 다시한번 console에 javascript코드를 입력하여 실행해보았다
아 역시 함수 실행을 위한 인자값이 맞았다.
인자값을 전달해주는 코드를 빼니, 함수에 대한 실행이 아닌 어떤 함수인지를 알 수 있었다.
(심지어 console에서 난독화를 다 푼 상태로 말이다! 개발자도구 최고!)
내용을 확인해보니, 큰 틀은 함수였고, 내용은 아래와 같았다.
- ck : uri에서 = 뒤의 값 (파라미터에 전달한 값)
- enco : 242자의 문자열
- if문 문제를 풀기위한 조건
일단 if문을 분석하기 전에, 변수 선언과 enco_ 함수에 대한 선언을 먼저 진행했다.
개발자도구에서 요렇게 선언을 마친 뒤, if문에서 ck와 비교하는 값이 무엇인지 알기위해, console에 입력해보았다.
if문은 결국 ck가 =youaregod~~~~~~~! 이면 youaregod~~~~~~~!.php로 이동시켜주는 조건문임을 알 수 있었다.
여기서 풀이가 두가지로 나뉜다.
- 그냥 youaregod~~~~~~~!.php에 직접 접근하여 문제를 해결한다
- 아무 파라미터에 youaregod~~~~~~~! 이라는 데이터를 넣고 request를 보내 if문을 충족시킨다.
첫번째 방법은 이렇게 그냥 내가 직접 youaregod~~~~~~~!.php로 이동하는 것이다.
두번째 방법은 이렇게 임의의 파라미터에 youaregod~~~~~~~! 값을 넣어 요청을 보내는 것이다.
두가지 방법 모두 결국엔 이렇게 문제를 풀 수 있다!
크게 어렵지않은 문제였다. javascript를 개발자도구에서 잘 다루지 못한다면 풀기 어려울 것으로 보인다.
'Webhacking > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] old-15번 문제 풀이 (0) | 2021.01.14 |
---|---|
[Webhacking.kr] old-14번 문제 풀이 (0) | 2021.01.14 |
[Webhacking.kr] old-11번 문제 풀이 (0) | 2021.01.08 |
[Webhacking.kr] old-10번 문제 풀이 (0) | 2021.01.08 |
[Webhacking.kr] old-09번 문제 풀이 (0) | 2021.01.08 |