본문 바로가기
Reverse/* Reversing Engineering (CTF)

#push 02. [Wargame.kr] flee button 문제.

by Aur0ra 2020. 7. 3.

#push 02. [Wargame.kr] flee button 문제.

 

 

웹 관련 문제입니다.

 

정식으로 웹 해킹에 관련된 공부를 한 적은 없습니다.

 

이것저것 코딩하면서 웹 파싱 관련된 작업을 수행하면서 

터득한 짧은 지식으로 통한 문제 풀이를 시작합니다.

 

  Wargame.kr 사이트내에

 

[flee button] 문제 풀이입니다.

 

 

일단 문제 먼저 보겠습니다.

 

 

 

문제입니다.

 

버튼을 클릭하라고 합니다.

 

시작을 눌려 페이지를 가보니

 

 

 

위 와 같이 마우스 포인터를 기준으로 일정 거리가 떨어진 곳에 버튼이 생성됩니다.

마우스 포인터를 기준으로 같이 움직이기 때문에

자바스크립트가 동작하고 있으면 해당 버튼의 움직임을 막을 순 없습니다 .

 

자바스크립트는 html 에 그대로 묻어나옵니다.

 

일단 페이지 소스 부터 확인해봅시다.

 

 

 

 

%인코딩 이라고 불리는 URL Encode 형태의 암호화된 문자가 보입니다.

 

하지만 앞에 unescape_blue14 라는 함수를 통해 풀어주는거 보니 

기존의 URL Encode 과는 방식이 다른 암호화 인거같네요 .

 

그리고 풀어진 암호화를 자바스크립트 eval() 함수를 통해 실행 시켜주고 있는 모습입니다 .

 

* eval() 함수는 인자로 넘어온 문자 스크립트를 실행 시켜주는 Javascript 함수입니다.

 

우리가 원하는 것은 일단 버튼이 Click 되었을때 발생하는 동작입니다.

 

일단 암호화를 해제하여 버튼 클릭을 담당하는 "button" 태그의 onclick 이벤트를 확인해보도록 합니다.

 

해당 함수의 암호화를 풀어주기위해 

 

크롬 - [개발자도구 (F12)] 의 Console 탭으로 가서 스크립트내의 함수를 직접 호출해주는 방향으로 갑니다.

 

 

 

 

한번 더 암호화가 된 문자가 나오고 

일정 부분은 해제된 모습을 보입니다.

 

하지만 원하던 onclick() 이벤트의 처리에 대한 스크립트는 보이지않습니다.

 

한번 더 복호화를 진행합니다.

 

 

 

드디어 원하던 "Button" 의 onclick 동작이 등장했습니다.

"      window.location='?key=18c7';        " 로케이션을 이동하는데  키값으로 18c7 를 사용하여 페이지 이동을 하는 것을 보입니다.

 

그럼 기존의 URL

wargame.kr:8080/flee_button/

에 ?key=18c7 를 추가하여 이동해봅시다.

 

 

 

 

짝짝 원하던 Flag 값이 등장했습니다.

 

해당 Flag 를 답으로 제출하면 성공!

댓글