써니나타스

웹해킹, 포렌식, 리버싱, 암호학, 해킹 워게임 제공.

www.suninatas.com

웹 문제이다.

그림 1

문제에 들어가자마자 보이는 것은 그림 1과 같이 ID와 PW를 입력하는 폼이 존재하고, Join 버튼이 있다.

 

회원가입 / 로그인 해킹 문제임을 가늠할 수 있다.

 

문제 1에서는 문제 풀이를 위한 소스코드가 제시되어 있었지만

 

여기서는 추가적인 정보가 제공되지 않는 것 처럼 보인다.

 

우선 폼이 보인다면, 개발자 도구를 통해 폼을 분석하는것이 올바르다.

그림 2

폼이 submit 되었을때, POST 메소드로 값을 전달한다.

 

Join 버튼을 눌렀을 경우, 곧장 submit 되는 것이 아니라, chk_form이라는 Javascript 함수를 실행한다.

 

chk_form은 id와 pw 필드의 값을 비교해 두 값이 같다면 초기화를 시키고, 아니면 submit를 시키는 듯 하다.

 

스크립트 아랫쪽의 힌트를 보아하니 id 필드와 pw 필드의 값이 같아야 Authkey를 획득 할 수 있는 듯 하다.

 

결론적으로, Javascript 구문을 우회할 수 있어야 한다.

 

이 문제에서 javascript를 우회하기 위한 방법은 무궁무진하다.

 

그 중 콘솔을 사용해보고자 한다.

 

크로뮴의 경우에는 개발자 도구에서 아래의 그림 3과 같이 Javascript 콘솔을 지원한다.

그림 3

때문에 콘솔을 통해서, 폼을 강제로 submit 시키는 방식을 이용하고자 한다.

그림 4

그림 4와 같이 id 필드와 pw 필드에 같은 값을 넣은 후

그림 5

그림 5와 같이 chk_form() 함수에서 사용된 submit 구문을 그대로 작성한다.

(물론, 이것 말고도 submit을 시킬 수 있는 방법은 다양하다)

그림 6

그림 6과 같이 Authkey가 출력된다.

 

사실, web02 폼은 POST로 값을 전달한다고 되어있지만,

 

1번 문제의 Request 객체를 똑같이 사용하기 때문에 GET 메소드로도 인자를 전달 할 수 있다.

그림 7

그림 7과 같이 파라미터를 넣은 다음 엔터를 치면

그림 8

그림 8과 마찬가지로 Authkey를 획득 할 수 있다.

 

따라서, Flag 값은 Bypass javascript 이다.

'Wargaming > SuNiNaTaS' 카테고리의 다른 글

[ SuNiNaTaS ] Game 01  (0) 2022.03.05

+ Recent posts