문제를 보면 "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

사진 속을 잘 들여다보면 인증 키 값이 살짝살짝 보입니다.


하지만 자에 있는 글씨 덕분에 보이지 않습니다.


어떻게서든 파일속에서 키값을 찾으면 되리라 판단됩니다.



사진을 다운로드 받고 HxD로 열어보고 찾아보겠습니다.


맨 마지막까지 봐도 특별한건 보이지 않습니다.


한가지 이상한건 jpeg의 파일 시그니처인 FF D8이라는 문자열이 상당히 많이 보였으며


형식도 반복된 것을 알게 되었습니다.




아래와 같이 FF D8 이 보이며 이 파일 속에 몇가지 사진이 더 숨겨져 있다고 생각되어


해당 부분부터 맨 밑까지 복사하여 새로운 파일을 만들어 냅니다. (monitor2.jpg)





아래 사진은 맨 밑쪽에 값들로 새로 만든 파일입니다.


처음에 보던 사진이랑 자의 위치가 다르고 안보였던 몇몇 부분이 명확하게 보이게 됩니다.


[monitor2.jpg]



"monitor2.jpg" 를 제외한 파일에서 새로 "FF D8'를 찾아 해당 값으로 새로운 파일을 만들면


다음과 같이 자의 위치가 조금 틀리게 되며 안보였던 맨 앞부분 키값을 얻을 수 있게 됩니다.


[monitor3.jpg]



이 문제처럼 사진이 한개뿐이여도 그안에 여러 사진이 존재할 수 있으며 파일이나 문자열을 사진 속에 숨길 수 있습니다.


물론 파일 같은 경우에는 용량이 크다면 만들어진 사진 용량이 그만큼 커져 의심을 받게 되지만


약간의 문자열 정도는 티가 안나기 때문에 잘 숨긴다면 충분히 감출 수 있게됩니다.


이것을 "스테가노그래피"라고 부릅니다.




[뒷말]


"스테가노그래피"에는 다양한 방법이 있는데 그중에서 사진은 RGB라는 값으로 이루어져 있는데 


그중 LSB(Least Significant Bit)를 이용해서 숨기는 방법이 있습니다. 


RGB값의 마지막 bit값을 이용해서 숨기는 방법인데 마지막 bit값이 변하더라도 눈으로 보기에는 큰 차이를 느낄 수 없어 이용하는 방법입니다.


문자열이나 파일을 2진화 시켜서 LSB마지막 bit에 정해진 위치에 넣게되면 숨겨지게 됩니다.


그밖에 여러가지 방법이 존재하므로 한번쯤 만들어봐도 재밌을꺼 같습니다^^


(한번 해봤는데 재밌었습니다^_^)

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

SuNiNaTaS_9 [BINARY]  (0) 2018.09.07
SuNiNaTaS_7 [WEB]  (0) 2018.09.07
SuNiNaTaS_15 [FORENSIC]  (0) 2018.09.06
SuNiNaTaS_3 [WEB]  (0) 2018.09.06
SuNiNaTaS_19 [FORENSIC]  (0) 2018.08.23

음악을 좋아햐나고 하면서 파일안에 인증키가 있다고 합니다.


"Play the Music"을 누르시면 [나비-다이어리] 라는 노래가 나옵니다.


우선 파일에 인증키가 있다고하니 다운로드 받고 확인을 해야할 것 같습니다.



조금 황당했지만.. 사진이나 동영상 같은 파일들은 


메타데이터라는 값으로 저작권이나 여러 설명들을 파일에 기록할 수 있습니다.


이 문제 역시 메타데이터 속에 인증키가 있었습니다.


HxD로 풀어야할줄 알았더니... 괜한 고생이였네요



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

SuNiNaTaS_7 [WEB]  (0) 2018.09.07
SuNiNaTaS_21 [FORENSIC]  (0) 2018.09.06
SuNiNaTaS_3 [WEB]  (0) 2018.09.06
SuNiNaTaS_19 [FORENSIC]  (0) 2018.08.23
SuNiNaTaS_18 [FORENSIC]  (0) 2018.08.23

처음에는 보고 어떻게 해야할지 몰라서 넘어갔던 문제입니다..


항상 풀고나면 쉽네요 ㅜ


문제는 달랑 "Notice 게시판에 글을 쓰라!" 고 나와있습니다.



Main에 보시면 Notice 가 있는데 해당 페이지로 가도 글쓰는 버튼은 보이지 않습니다.


관리자만 글쓰게 하려고 만든 게시판으로 보입니다.


어쨋든 문제는 글을 쓰라고 했으니 어떤 방법이든 있으리라 생각합니다.


다른 게시판으로 가봅니다.



"Q&A" 게시판을 가보시면 Notice와 비슷한 형태이고 "Write" 버튼이 있습니다.!!



해당 버튼을 누르면 다음과 같이 글쓰는 페이지가 나옵니다.


처음에는 URL에 항상 "suninatas.com" 만 표시 되었지만 각각의 페이지는 고유의 URL을 가지고 있으므로


개발자도구에서 해당 URL을 확인하거나 


전페이지에서 write 버튼의 이동하는 페이지가 무었인지 소스보기로 확인할 수 있습니다.


URL을 확인해 보시면 "divi=Free" 라는 것을 보실 수 있는데 Free라는 것이 게시판 이름임을 확인 할 수있으며


Free 대신 notice를 입력하면 notice 게시판에 글을 작성할 수 있습니다.



다음과 같이 글쓰기 게시판이 나오고 아무 값이나 입력하고 submit을 하면 인증키가 나오게 됩니다.



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

SuNiNaTaS_21 [FORENSIC]  (0) 2018.09.06
SuNiNaTaS_15 [FORENSIC]  (0) 2018.09.06
SuNiNaTaS_19 [FORENSIC]  (0) 2018.08.23
SuNiNaTaS_18 [FORENSIC]  (0) 2018.08.23
SuNiNaTaS_14 [FORENSIC]  (0) 2018.08.23

너무 황당하고.. 그랬네요 좀..


level5를 빠르게 먼저 풀었어가지고 이것도 비슷한 방법으로 해봤습니다.


무슨 데이터가 숨어있나 찾아보기도 했고 암호화나 해쉬값으로 되어있나 찾아봤지만


답을 찾을 수 없었습니다.... 온통 이상한 글자들 뿐..



우선 사진은 다음과 같습니다. 여기서 데이터를 찾으면 된다고 합니다.



결론부터 이야기를 하자면 사진에는 Exif(교환 이미지 파일 형식)이라는 친구가 있습니다.


이것은 사진의 다양한 데이터를 넣을 수 있는데 사진을 찍었을 때 카메라 설정, 날짜. 저작권 등등 다양한 정보를 사진의 포함 시킬 수 있습니다.


Windows는 우클릭 속성에서 다음과 같이 간단하게 그 정보를 확인 할 수 있습니다..



위에 값을보고 만든 이가 "james"인걸 보고 이게 username인가 ? 했으며


설명의 "I like chocolate"을보고 이게 password인가해서 인증해봤는데 아니였습니다.


그래서 여기에서 얻을 수 있는게 없다 판단하고... HxD도 확인해보고... Notepad에 옮겨서 차근차근 읽어봤지만 실패..


더이상 정보를 얻을 수 없었습니다..


오랜시간 후에 james/chocolate 으로 인증해보니 되었습니다.


너무 황당했네요..ㅜ


'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Intermediate level4  (0) 2018.09.19
[HackThis] Basic+ level3  (0) 2018.09.09
[HackThis] Main level10  (0) 2018.08.31
[HackThis] Main level9  (0) 2018.08.31
[HackThis] Real level1  (0) 2018.08.31

일반적인 암호화는 쉽게 풀린다고 합니다.


일반적인 암호에는 MD5, SHA, Basa64 .. 같은게 있죠.



소스보기를 해봅니다.


1
2
3
4
5
6
7
8
9
10
<form method="POST">
    <fieldset>
        <label for="user">Username:</label>
        <input type="Text" name="user" id="user" autocomplete="off"><br>
        <label for="user">Password:</label>
        <input type="Password" name="pass" id="pass" autocomplete="off"><br>
        <input type="hidden" name="passwordfile" value="level10pass.txt">
        <input type="submit" value="Submit" class="button">
    </fieldset>
</form>
cs


"passwordfile"이라면서 "level10pass.txt"가 있다고 합니다 해당 파일에 복호화해야할 문자열이 있겠죠?


근데 정확한 경로를 안알려줘서 좀 해맸습니다...


다른 문제에서 파일들이 보통 /level/extras에 있어서 혹시 몰라 해보니 있네요...



보아하니 ':' 로 구분되어 있고 앞에는 id, 뒤에는 pwd라는 것을 짐작할 수 있습니다.


우선 자리수는 64개이고 모두 숫자와 영문으로 되어있습니다.


64개의 암호문이면 sha256를 떠올릴 수 있습니다. 


sha256으로 해쉬 복호화를 해보면 값이나오고 인증하면 성공합니다.


'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Basic+ level3  (0) 2018.09.09
[HackThis] Basic+ level4  (0) 2018.09.03
[HackThis] Main level9  (0) 2018.08.31
[HackThis] Real level1  (0) 2018.08.31
[HackThis] Real level2  (0) 2018.08.31

영어 해석 때문에 제대로 안풀렸고 오래걸린 문제입니다. ㅠㅠ


①구글번역

개발자는 이제 비밀번호 알림을 받을 수 있는 기능을 추가했습니다. 대신 로그인 정보를 보내기 위해 악용 할 수 있습니까?


②파파고 번역

개발자는 이제 비밀번호 알림 기능을 추가했습니다. 대신 로그인 세부 정보를 보낼 수 있습니까?


③실제 의미하는 바(자해석)

개발자에게 비밀번호가 보내지도록 되어있는데, 너에게 로그인 정보를 보내도록 할수 있냐?


이런 느낌인거 같습니다.



"Request detailes"에 가보면 다음과 같은 소스코드를 보실 수 있습니다.



"hidden" 타입으로 value="admin@hackthis.co.uk"로 되어있는 것을 보아 저 이메일 주소로 로그인 정보가 보내지는 것으로 보여집니다.


여기에 본인의 email 주소로 바꿔놓고 전송하게 되면 성공하게 됩니다.


1
2
3
4
5
6
7
8
<form method="POST">
    <fieldset>
        <label for="email1">Email:</label>
        <input type="text" name="email1" id="email1" autocomplete="off"><br>
        <input type="hidden" name="email2" id="email2" value="admin@hackthis.co.uk" autocomplete="off">
        <input type="submit" value="Submit" class="button">
    </fieldset>
</form>
cs




번역기가 정확한 해석을 해줄 수 있는 것은 아니기 때문에 나름대로 더 해석해 봐야했고


영어의 중요성을.... ㅠ


해석 하나로 전혀 다른 방안으로 풀고 있었습니다.

'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Basic+ level4  (0) 2018.09.03
[HackThis] Main level10  (0) 2018.08.31
[HackThis] Real level1  (0) 2018.08.31
[HackThis] Real level2  (0) 2018.08.31
[HackThis] Intermediate level3  (0) 2018.08.29

목표의 계정의 접근해서 혼란스럽게 만드시오...



해당 링크에 접속하면 다음과 같은 페이지가 나오게됩니다.


문제에 "World of Peacecraft"에 중독되 있다고하니 해당 게시글로 이동해봅니다.



링크를 누르고 계정 비밀번호를 입력하라고 합니다.



test를 입력해 봤는데 실패라고 나오는 걸 보니 이 페이지가 인증 페이지로 보여집니다.



다른 페이지에 들어가서 비밀번호를 알아낼 수 있는 힌트가 있는지 확인해봅니다.


첫 페이지에 두번째 글에는 별다른 내용이 없었으면


이어지는 "Outbox", "Sent Messages"도 비어져 있어 의미가 없었습니다.





"Trash"에 가보니 "Password Request"라는 글이 하나 있습니다.


누군가 Password를 새로 요청한 것으로 보입니다.



내용을 확인하니 다음과 같이 password를 알려주면서 즉시 email을 삭제하라고 했습니다.


삭제를 했지만 휴지통에 남아있어 정보를 흘리고 다녔네요..


해당 값으로 인증 페이지로 가서 인증하면 성공하게 됩니다.



'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Main level10  (0) 2018.08.31
[HackThis] Main level9  (0) 2018.08.31
[HackThis] Real level2  (0) 2018.08.31
[HackThis] Intermediate level3  (0) 2018.08.29
[HackThis] Intermediate level2  (0) 2018.08.29

+ Recent posts