[어설픈] webhacking.kr 36번 문제풀이

2019. 2. 26. 23:40Web Hacking/Webhacking.kr

[해당 문제는 webhacking.kr 공사 이후에 정상작동 하지않는 문제입니다!]


안녕하세요!

오늘은 200점짜리 문제인

36번을 풀어보도록 하겠습니다!


제가 맨 위에서도 적어 놨듯이!

 옛날에는 올바르게 command를 입력하면 됐는데

지금은 올바르게 command를 입력해도 안됩니다!


저도 분명히 맞다고 생각하고 풀었는데 

계속 안돼서 

사람들이 어떻게 풀었나 찾아보니 

지금은 안돼서 

풀이에 올라온 결과 창 보고 풀었습니다!


일단 들어가보니

아래와 같이 적힌게 끝이였습니다!


힌트는 

(1) vi

(2) blackout




에이 설마하는 생각에

소스코드를 봤는데


아래와 같이 까알~끔하게

저거 밖에 없네요...



여기서 이제 제일 큰 시간을 보냈습니다

hint는 두 개 뿐이고

너무 hint도 간단해서


그럼 일단 주어진 hint를

조금이나마 분석해 보겠습니다!


(1) vi 

이거는 솔직히 웹 공부만 하셨으면 잘 모르실 수 있는데

리눅스에서 vi 에디터를 쓸 때 나오는 

vi로 생각했습니다!

그것 말고는 생각나는게 없더라구요..


(2) blackout

사전적인 의미는 정전입니다!

구글에가서 쳐보니 그렇게 나오더라구요!


이제 이 둘을 어떻게 조합하느냐인데..

그냥 힌트 둘을 합치면 

"vi 에디터 +정전 "

vi 에디터가 갑자기 꺼질때를 의미하는건가?


저의 경우 CTF를 풀다가 이와 비슷한 문제를 풀어본 경우가 있었습니다!

2019 NEWSECU CTF인거 같은데 

거기서 백업파일을 찾아서 내용을 읽는거 였는데

그때도 갑자기 꺼지거나, 종료됐을때 이렇게 찾는다고 들었습니다!


그래서 제일 기본인 index페이지를

찾아보려고

.index.php.swp를 입력했습니다!


우선

왜 index.php.swp 앞에 .이 있냐!

-> 숨김 파일의 경우 앞에 .을 붙여야 합니다!


그럼 php 뒤에 .swp은 뭐냐?

일반적으로 컴퓨터에서 작업하면

혹시 모를 오류나 꺼짐에 대비하여

백업파일을 만들게 되는데요!

.bak 형태로 만들어지는데


vi 에디터의 경우 .swp형태로

백업파일을 만듭니다!


그리고 이러한 백업파일들은 일반적으로

숨김파일입니다!


그래서 최종적으로 .index.php.swp를 입력하면 

아래와 같이 떠야하죠!


근데 지금 webhacking.kr에서는

뜨지않습니다! 



이렇게 뜬다고 하네요!

근데 이렇게 뜨면 사실상 뭐 끝났죠?


이 문제의 핵심 혹은 concept은 백업파일을 파악 할 수 있느냐?

였는데 백업파일의 내용을 보면

당연히 쉽게 풀리겠죠?(컨셉으로 보면)


$_SERVER[REMOTE_ADDR]이건 

php에서 제 사용자 ip를 가리킵니다!


근데 위에 사진은 제가 다른 풀이 페이지에서 

가져온거라 아래와 같이 

sublimetext에서  좀 더 

깔끔하게 정리해 보았습니다!


그래서 결국 저 $_SERVER[REMOTE_ADDR]자리에

제 ip를 넣고 뒤에 문자열(dlseprtmvpdlwlfmfq........)과 함께

md5 해시를 해주면 

password가 되네요!


아래에 좀 더 친절하게 시각화 해놨습니다!


근데 여기서 주의할 점은!

아이피 주소와 뒤에 문자열 사이에 공백을 

유지해 줘야 한다는 겁니다!


아래의 그림에서 보시면 알겠지만 [remote_addr]와 dlseprt... 사이에

조그만 공백이 있죠!


처음에 이거 무시하고 md5해쉬 했다가 인증했는데

안되더라구요!

어찌됐건 그래서 이 password를 

webhacking.kr auth(인증)에가서

입력하면


아래와 같이 클리어 창이 뜨게됩니다!

고생하셨습니다!