URL은 다음과 같다.

http://suninatas.com/challenge/web04/web04.asp

 

Game 04

User-Agent facebookexternalhit/1.1; kakaotalk-scrap/1.0; +https://devtalk.kakao.com/t/scrap/33984

suninatas.com


해결책

우선 접속을 하면 다음과 같은 화면이 우리를 환영한다.

 

이미 25가 된 건 필자가 광클을 했기 때문이고, 한 번 더 plus를 눌러 26으로 올리려고 하면 다음과 같은 안내문이 나온다.

SuNiNaTaS 브라우저를 좋아한다고 한다. 

어떤 문제인지 확인을 위해서 주석을 확인하면 다음과 같다.

 Plus버튼에는 submit()밖에 없고, 아래주석에 따른 면 SuNiNaTaS와 point 50을 만들라고 한다. 

 

웹 요청에서 브라우저를 표현하는 것은

Request Header에 User-Agent이다. 문제 화면에서도 현재 요청의 User-Agent를 보여주며 힌트를 주고 있다.

프락시 툴을 통해서 다음과 같이 수정하자.(필자는 Burp를 사용했다.)

26으로 올라가기는 하는데, 시간이 너무 많이 걸리니, Burp의 기능 중 하나인 Repeater를 이용하자

49를 맞춰주도록 하자. 넘어가면 돌아올 수 없는 강이다. 마지막 요청을 보내면 응답 코드를 획득할 수 있다.

URL은 다음과 같다.

http://suninatas.com/challenge/web03/web03.asp

 

Game 03

 

suninatas.com


해결책

번역하면

 

"공지 사항에 글을 쓰세요"

 

정도가 될 거 같다. 

 

공지사항에 가보자

  • Url : http://suninatas.com/board/notice

공지사항에는 글을 쓰는 기능이 없어 보인다. 한번 글을 쓸 수 있는 free쪽으로 가보자

free에는 글을 쓸 수 있다. url은 다음과 같다.

  • Url : http://suninatas.com/board/free/write

눈치 챘는가. 뒤에 write를 붙이는 걸로 경로를 이동할 수 있다.  실제로는 directory traversal이라는 뭔가 거창한 이름을 가진 취약점으로 통한다. 혀튼 아래와 같은 경로로 이동하면 글을 쓸 수 있는 화면이 다음과 같이 나온다.

  • http://suninatas.com/board/notice/write

아무렇게나 입력하고, 보내면 authentication key를 준다.

URL은 다음과 같다.

http://suninatas.com/challenge/web02/web02.asp

 

Game 02

 

suninatas.com


해결책

여기에도 ASP가 있다. 로그인폼 하나 있는 상황이라 자연스럽게 다음과 같은 SQL Injection을 시행해 보았다.

  • id : admin
  • pw : ' or 1=1-- 

.... 아무 반응이 없다. 주석을 보고 힌트를 조금 구해보자

아래쪽 <script> 쪽이 로그인을 실행하는 코드다. 일단 id가 pw랑 동일하면 무슨 일이라도 일어날 것 같으니, 그거부터 해보자. 

  • id : aaa
  • pw : aaa

으흠; 코드에 alert()대로 경고창이 나왔다. 이걸 어떻게 하나

취약점은 이게 자바스크립트라는 점에 있다.

물론 코드는 asp로 이루어져있지만, javascript를 통해서 클라이언트 처리를 지향하고 있는 게 2번 문제이다. 따라서 코드를 그대로 복사해서 웹페이지 console에 overwrite 하고 똑같은 id와 pw를 보내는 걸로 해결할 수 있다.

  • id : aaa
  • pw : aaa

정답은 예의상 가린다.

URL은 다음과 같다.

http://suninatas.com/challenge/web01/web01.asp

 

Game 01

<%    str = Request("str")    If not str = "" Then        result = Replace(str,"a","aad")        result = Replace(result,"i","in")        result1 = Mid(result,2,2)        result2 = Mid(result,4,6)  

suninatas.com


해결책

자 우선 ASP스크립트 이다.

홈페이지에는 다음과 같은 글이 있다. 한줄한줄 해석할 수도 있으나, 1번부터 너무 구체적인 설명은 귀찮으니 그냥 플로우차트로 설명하면 다음과 같다.

그래서 뭐가 들어가면 되는가, 역산을 해보면 "ami"다 BTS 사랑해요

 

손휘났다스는 워게임 사이트이다. 분야는 WEB, REVERSING 등 폭넓은 분야를 가지고 있다. 문제의 수가 많은 것은 아니지만, 32문제 정도면 한번 공략집을 적기에 충분하다는 생각이 들어서 공략을 시작한다.

http://suninatas.com/

 

써니나타스

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

www.suninatas.com

 

+ Recent posts