웹 문제이다.

페이지에는 주석으로 <!-- Hint : Make your point to 50 & 'SuNiNaTaS' -->라고 쓰여있다.

뒤에 서니나타스가 무슨 의미일까?


Plus 버튼을 누르면 Point가 1씩 증가한다. 이렇게 50점을 만들면 클리어가 될 것 같다. 허나...



25점이 된 후부터는 위와 같은 alert가 뜨면서 Point가 25점에서 멈춰버린다.


화면상에는 User-Agent가 나와있다. 이건 또 왜 나와있는걸까?

지금까지 힌트는 단 두 가지 주어졌다. SuNiNaTaS, User-Agent.


Hint. 이 문제는 프록시 툴을 사용하여 풀이하는 문제이다.


풀이

Fiddler Proxy Tool을 이용해 문제를 클리어해보자.

필자는 크롬 익스텐션으로 Proxy SwitchyOmega라는 프로그램을 사용했다.

로컬호스트의 포트 8888로 임의의 이름 fiddler proxy로 프로필을 하나 만들어두면

다음과 같이 프록시를 손쉽게 제어할 수 있다.

포트가 8888인 이유는, fiddler의 default port가 8888이기 때문이다.

- 접기

또다른 프록시 툴은 burpsuite은 8080이었던 것으로 기억한다. 사용자가 변경할 수도 있다.

필자는 paros까지 3개 사용해보았다. 각각의 장점이 있으니 때에 따라 편한대로 골라 사용하면된다.



프록시 설정
피들러 실행
-----
좌측 하단의 칸을 클릭하여 request를 catch하도록 설정(response와 반대)
Plus 버튼을 눌러서 패킷 잡기

User-Agent를 SuNiNaTaS로 변조하기

아래 녹색 Run to ... 클릭(잡은 패킷 보내기)

패킷을 그만잡도록 설정하고, 잡힌 패킷들을 좌측 상단 Go 버튼으로 모두 보내주면

Point가 증가한 것을 확인할 수 있다!

-----

이미 보내진 패킷에 우클릭을 통해 더 쉽게 설정할 수 있다.

패킷을 보낸 후 페이지를 새로 고침하면 마찬가지로 포인트가 올라가있다.


우리가 변조했던 패킷을 보면, total이라는 POST 파라미터를 전송하는 것을 확인할 수 있다. 현재 Point를 가리키는 것으로 보인다.

허나, 이 값을 49, 50으로 변조하여도 Point는 정상적으로 1 증가한다.

그렇다면, 포인트를 50으로 만들려면 위와 같은 동작을 25번 반복하면 된다.

수고를 덜기 위하여 피들러의 기능을 이용해보자.

우리가 변조했던 패킷을 클릭해놓고, Shift키를 누른 상태로 좌측 상단 Replay 버튼을 클릭하면

같은 패킷을 적은 수의 갯수만큼 보내준다.


필자는 실수로 50을 넘겼더니 auth key를 확인할 수 없었다. 

?

그래서 쿠키를 삭제하고 재로그인, 세션쿠키를 갱신하여 0부터 다시 시작하였다.

포인트 49에서는 -----로 표시해둔 방법의 패킷 캡처를 통해, 웹 브라우저에서 alert 값을 확인하자.

auth key를 확인할 수 있다. 포인트가 0으로 초기화된다.


User-Agent는 브라우저 종류, 버전, 기종, OS 등의 정보가 담긴 부분이다. 그래서 alert에서 SuNiNaTaS Browser를 애타게 찾았던 것이다.

결국 User-Agent를 SuNiNaTaS로 변조했다는 것은 '서니나타스 브라우저에서 접속했습니다'라고 말하는 것이었다.




'Wargame Writeup > SuNiTaTaS' 카테고리의 다른 글

[SuNiNaTaS] 6번 문제  (4) 2015.11.05
[SuNiNaTaS] 5번 문제  (5) 2015.11.05
[SuNiNaTaS] 3번 문제  (0) 2015.11.04
[SuNiNaTaS] 2번 문제  (0) 2015.11.04
[SuNiNaTaS] 1번 문제  (0) 2015.11.03

WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/