보안을 그리다, 훈이

[MISC] 써니나타스(SuNiNaTaS) 12번 문제 Write Up 본문

Security/Wargame

[MISC] 써니나타스(SuNiNaTaS) 12번 문제 Write Up

HooNeee 2021. 11. 22. 20:49

 

기분 환기겸 써니나타스(SuNiNaTas)의 몇 없는 MISC 분야의 문제 중 하나인 12번 문제를 풀어보았다.

 

 

Game 12

 

suninatas.com

 

생각했던 것 마냥 간단한 문제는 아니었던 것 같다.

 

문제를 보면 아래와 같은 화면이 출력된다.

 

[SuNiNaTaS] Challenge 12

 

관리자로 로그인하기 위해 로그아웃한 후, 'admin' 키워드를 활용하여 로그인을 여러 번 시도해봤으나 실패하였다.

 

따라서, 관리자로 로그인할 수 있는 폼이 따로 있을 수 있다는 생각을 해보았고,

 

http://suninatas.com/admin/ 으로 접속을 하니 QR 코드가 나타났다.

 

[SuNiNaTaS] QR Code

 

스마트폰으로 위 코드를 인식해보니, http://suninatas.com/admin/admlogin.asp URL이 나타났고 곧바로 들어가보았다.

 

[SuNiNaTaS] Flash

 

????

 

"이 플러그인은 지원되지 않습니다."

 

보자마자 플래시 형태인 것을 추측할 수 있었다.

 

[Adobe] Flash

 

그렇다..

 

최근에 Adobe Flash 지원이 종료되는 바람에 문제 링크의 플래시가 정상적으로 출력되지 않았던 것이다.

 

뭐.. 아쉬운 맘을 뒤로하고 페이지 소스코드부터 확인해보기로 했다.

 

<!-- http://suninatas.com/admin/admlogin.asp -->

<html>
  <head>
    <title>Admin Login</title>
  </head>
  <body>
    <embed src="admlogin.swf">
  </body>
</html>

 

굉장히 단순하다.

 

6번째 줄을 보니 'admlogin.swf'를 가리키는 것을 확인할 수 있다.

 

swf는 Adobe Flash에서 멀티미디어, 벡터 그래픽, 액션스크립트 등을 처리하는 데 사용하는 파일 형식이다.

 

따라서, 'admlogin.swf'를 디컴파일하면 내부 구조를 파악할 수 있다고 생각했다.

 

 

SWF Decompiler, SWF to FLA

Online Convert SWF to FLA file, This app is a powerful SWF to FLA converter, which will help you decompile Flash movies, convert SWF elements into multiple formats and edit SWF files (script, image, font, frame, and more).

pdfrecover.herokuapp.com

 

구글에 swf decompiler online을 검색하고 가장 상단에 배치된 사이트에 접속하여 진행해 보았다.

 

[SuNiNaTaS] admlogin.swf decompiled output

 

DOMDocument.xml 코드를 살펴보자

 

100번 째 줄을 보니 receipt() 함수를 정의하고 호출하고 있는 것을 알 수 있었다.

 

...

<script><![CDATA[on(release){
   function receipt()
   {
      if(flashid != "admin" or flashpw != "myadmin!@")
      {
         flashmessage = "Wrong ID or PW";
         play();
      }
      else
      {
         flashmessage = "Auth : \"Today is a Good day~~~\"";
         play();
      }
   }
   receipt();
}
]]></script>

...

 

flashid가 admin이 아니거나 flashpw가 myadmin!@가 아니라면 "Wrong ID or PW"라는 문구를 출력한다고 되어있다.

 

또한, flashid와 flashpw가 일치하다면 "Auth : Today is a Good day~~~"라는 문구를 출력하도록 되어있다.

 

그러므로 flag가 Today is a Good day~~~ 이라는 의미로 해석할 수 있다.

 

AUTH 페이지에 인증해보니 Congratulations! 라는 말과 함께 솔브에 성공한 것을 확인할 수 있었다.

 

Comments