문제를 보면 "Point", "User-Agent", "Auth Key"가 있습니다.


우선 눈에 보이는 "Plus" 버튼을 계속 누르면 숫자가 하나씩 증가합니다.


그러다가 25가되면 alert창이 뜨면서 더이상 증가하지 않습니다.



좀더 정보를 얻기 위해 소스보기를 하시면 주석으로 <!-- Hint : Make your point to 50 & 'SuNiNaTaS' --> 가 있습니다.


50 Point를 만들라는 것은 알겠는데 'SuNiNaTaS'는 왜 있는걸까요..?


프록시 툴로 포인트를 강제로 50으로 바꿔봐도 제대로 수행되지 않아서 막혀있었습니다.


근데 뜬금없이 "User-Agent"를 왜 보여주는 걸까요?? 분명 이것도 이유가 있어서 보여주는 것일 껍니다.


현재 "User-Agent"는 사용자의 브라우져에 따라 값이 다르게 됩니다. 이 값을 힌트에 나와있는 'SuNiNaTaS'로 바꾸면 될듯합니다.




"User-Agent'를 바꾸는데는 다양한 방법이 있을테지만 저는 Chrome에서 있는 기능을 사용하려고 합니다.


크롬 확장프로그램에 User-Agent Switcher for Chrome 이라는 확장 프로그램이 있습니다.


이 프로그램은 "User-Agent"값을 조작해서 다양한 브라우져를 사용하는 것 같은 효과를 줍니다.


"설정" 탭에서 추가로 "SuNiNaTaS"라는 값을 만들어 사용해 봅니다.



다음과 같이 값이 "SuNiNaTaS"로 변한게 보이실 겁니다.


이제 "Plus" 버튼을 누르면 alert창이 뜨지않고 값이 오르게됩니다.



그렇게 50까지 Point가 오르게 되면 다음과 같이 인증키 값이 나오게 됩니다.



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

SuNiNaTaS_11 [BINARY]  (0) 2018.09.09
SuNiNaTaS_10 [BINARY]  (0) 2018.09.08
SuNiNaTaS_9 [BINARY]  (0) 2018.09.07
SuNiNaTaS_7 [WEB]  (0) 2018.09.07
SuNiNaTaS_21 [FORENSIC]  (0) 2018.09.06

제가 리버싱은 잘 못해서 해석이 매끄럽지 못합니다...


저는 x86dbg를 사용했습니다. Ollydbg랑 매우 유사합니다.


해당 파일을 다운로드 받으시면 간단한 프로그램이 하나 나오게 됩니다.



"Click!"버튼을 눌러도 아무런 응답이 없습니다.


어쨌든 알맞은 값을 입력해야 해결이 될꺼라 생각합니다.



우선 모든 문제를 풀었을때 "Congratulation!"이라는 문구와 함께 해결된 것을 알기에


문자열 찾기를 통해서 다음 문자열을 찾을 수 있었습니다.



문자열을 찾으셨으면 우클릭으로 해당 어셈코드로 이동해서 분석을 시작하면 될 것 같습니다.



사실 지금 눈으로 봐도 답이 보이긴 합니다.. ^^


분석을 시작해보면 "Congratulation!"이라는 문자열이 나오게 하려면


[0045033D] 부분에 jne 를 통과해야 합니다. ( jne 비교하는 문자열이 같지 않으면 점프 )

입력한 값과 프로그램 내부에서 설정된 값이 동일해야 이 jne 문을 통과해 답이 해결되는 것 같습니다.



임의의 문자열 "1234"를 입력하고 진행해 보겠습니다.


[0045032A] 부분의 함수안에서는 사용자가 입력한 값을 불러오는 역할을 수행했습니다.



실질적으로 비교하는 함수는 [00450338] 에서 수행하므로 함수 내부로 진입해봅니다. ( F7은 내부로 이동, F8은 함수 내부x )



내부로 들어가 보시면 eax에는 입력한 값 "1234"가 들어있고 edx에는 프로그램에서 설정한 값인 "913465"가 있습니다.

이 두값을 비교해 같으면 [004046A]로 점프하여 진행되고 값이 같으니 함수밖을 나가서 점프문이 실행되지 않고 넘어가게 됩니다.



해당 키 값을 인증 페이지에서 인증하시면 됩니다.


간단한 리버싱 문제였습니다... 아직 리버싱에 익숙하지 않아서 매끄럽지 못하네요 ㅜ.

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

SuNiNaTaS_10 [BINARY]  (0) 2018.09.08
SuNiNaTaS_4 [WEB]  (0) 2018.09.07
SuNiNaTaS_7 [WEB]  (0) 2018.09.07
SuNiNaTaS_21 [FORENSIC]  (0) 2018.09.06
SuNiNaTaS_15 [FORENSIC]  (0) 2018.09.06

아이유 사진이 나와있습니다.


쭉 내리다보면 "Yes" 버튼이 있고 마지막에는 윤아 사진이 있습니다.


"Yes" 버튼을 눌러보면 너무 느리다는 alert창과 함께 실패하게 됩니다.


소스코드에 주석을 확인해 보시면 <!-- Hint : Faster and Faster --> 라고 되어있습니다.


"Yes"버튼을 빨리 누르라는 의미겠죠?




javascript로 다음과 같이 입력하면 버튼을 누를 수 있게 됩니다.


하지만 "submit"이 정의되지 않았다는 메시지와 함께 Error가 발생합니다.


구글에 검색해보시면 페이지가 전부 로드되기전에 찾으려고 하니깐 Error가 발생한다고 합니다.

(이것때문에 고생...많이했는데 ㅜㅜ)



그래서 Python으로 코드를 작성하고자 합니다.

Python에는 requests라는 모듈이 있는데 Post/Get 방식으로 데이터를 전송할 때 편리합니다.


"Yes" 버튼을 누르게 되면 "Do U Like girls?" 이라는 메시지가 post 방식으로 보내지게 됩니다. 해당 URL로 보내집니다.

그렇기 때문에 보낼 data도 함께 작성해줍니다.


1
2
3
4
5
6
7
import requests
 
cookies = {'YourCookie':'YourCookieValue'}
data = { 'web07':'Do U Like girls?'}
 
res = requests.post('http://suninatas.com/Part_one/web07/web07_1.asp', data=data, cookies=cookies)
print(res.text)
cs


이렇게 작성해주고 실행을 시키면 다음과 같은 결과가 나오게 됩니다.

실패를 했는데 이유가 무엇일까요...



먼저 우리가 풀려고하는 문제 페이지를 띄워야 되는 것을 알게 되었습니다. (약간의 힌트..)

그래서 get방식을 이용해서 해당 페이지를 먼저 로드한 이후 보냈더니 성공하게 되었습니다.


1
2
3
4
5
6
7
8
import requests
 
cookies = {'ASPSESSIONIDAQDTQQDT':'DHIJMHABAEOGDAOKHEIKGLCP'}
data = { 'web07':'Do U Like girls?'}
 
requests.get('http://suninatas.com/Part_one/web07/web07.asp', cookies=cookies)
res = requests.post('http://suninatas.com/Part_one/web07/web07_1.asp', data=data, cookies=cookies)
print(res.text)
cs





[성공 후]


다른 사람들은 어떻게 풀었나 봤더니.. javascript도 충분히 풀수 있었더군요.

개발자도구에서 Console창에 다음과 같이 입력하면 풀이가 되었습니다.


location.href로 먼저 페이지를 로드하고 이후에 빠르게 document.frm.submit()을 해주면 풀이가 되었습니다.


어떤사람은 document.frm.submit()만 해도 Error 없이 성공 했던데... 이유가 무엇일까요?


1
2
location.href='http://suninatas.com/Part_one/web07/web07.asp'
document.frm.submit()
cs


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

SuNiNaTaS_4 [WEB]  (0) 2018.09.07
SuNiNaTaS_9 [BINARY]  (0) 2018.09.07
SuNiNaTaS_21 [FORENSIC]  (0) 2018.09.06
SuNiNaTaS_15 [FORENSIC]  (0) 2018.09.06
SuNiNaTaS_3 [WEB]  (0) 2018.09.06

+ Recent posts