'Wargame'에 해당되는 글 454건


wargame.kr 1번 already got 풀이

2016. 12. 5. 17:54

뜨든!! 내년부터 도전해볼 각종 해킹 대회에 참가하기 위해 필요한 다양한 기초지식을 습득을 목표로 먼저 웹해킹에 도전해 보기로 했다. 
비장한 각오를 다지고 dvwa를 통해 쌓은 기본적인 웹해킹 지식을 바탕으로 webhacking.kr에 도전해 보려했으나......
Webhacking.kr이 공사중이라는 충격적인 소식...OTL.... 
공사가 끝나기 전까지 wargame.kr을 먼저 클리어 해보기로 했다!
사이트 주소는  http://wargame.kr 이다. 자 시작해볼까?!!


첫 번째 문제 already got! 점수는 200point이다! 

들어가 보니 HTTP Response header를 볼 수 있냐고 물어본다.

일단 Start를 눌러봤다.

음.. 키를 이미 구했다고..?

일단 패킷을 캡처해 봐야할 것만 같다..........


Burp Suite를 통해 패킷을 캡처해 봤다.

reponse header 확인 결과 FLAG에 키 값이 담겨있는 걸 확인할 수 있다.

1번 문제라 그런지 아직은 가벼운 느낌?

자 힘내서 열심히 달려보자!


'Wargame > wargame.kr' 카테고리의 다른 글

wargame.kr DB is really GOOD  (0) 2018.01.04
wargame.kr wtf_code  (0) 2018.01.04
wargame.kr login filtering  (0) 2018.01.04
wargame.kr flee button  (0) 2018.01.04
wargame.kr QR CODE PUZZLE  (0) 2018.01.04
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

FTZ level3

Wargame/FTZ 2018. 1. 4. 00:08

level3으로 접속 후 hint 파일을 확인해 보면 다음과 같다.

 

 

취약점은 간단하다. 바이너리에 인자로 들어가는 값이 dig 명령어의 첫번째 인자값으로 세팅되어 실행되는 코드이기 때문에 ; 를 활용해서 다중 명령어를 실행하도록 해주면 된다.

 

다음과 같이 level4 권한에 setuid 세팅된 파일을 찾은 후 실행해보면 hint파일의 코드와 동일하게 실행되는 파일이라고 추측할 수 있다. 인자로 ";my-pass;" 요런식으로 넣어주면 다중명령어가 system함수내에서 실행되면서 패스워드를 구할 수 있다.

 

 

잘나온당.

  

'Wargame > FTZ' 카테고리의 다른 글

FTZ level6  (0) 2018.01.05
FTZ level5  (0) 2018.01.05
FTZ level4  (0) 2018.01.04
FTZ level2  (0) 2018.01.03
FTZ level1  (0) 2018.01.03
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

FTZ level2

Wargame/FTZ 2018. 1. 3. 23:52

level2로 접속 후 hint 파일을 확인해보면 다음과 같이 편집 중에 쉘 명령을 실행시킬 수 있다고 한다.

 

 

 

다음과 같은 명령어를 통해 우선 level3 권한이 있는 setuid가 설정된 파일을 찾았다.

 

 

 

일단 파일을 실행해보면 vi 편집기같은 편집화면이 나오는 것을 확인할 수 있었다.

 

일단 좀 더 자세한 분석을 위해 gdb로 분석을 해봤다.

 

로직은 간단하다.

setreuid 함수로 level3 권한인 3003(0xbbb)로 권한 변경 후 system함수를 통해 특정 명령어를 실행한다.

이 때 실행되는 명령어를 파악하기 위해 인자값으로 들어온 8048444 메모리 주소의 값을 보면 위와 같이 /bin/vi라는 문자열이 입력되어 system함수를 통해 실행된 것을 확인할 수 있다.

 

즉 /usr/bin/editor 바이너리는 level3 권한으로 vi에디터를 실행시켜주는 로직을 가진 파일이었던 것을 알 수 있었다.

 

그렇다면 해당 바이너리 실행 시 실행된 vi에디터는 level3 권한을 가지고있기 때문에 다음과 같이 vi에디터의 명령어 실행 기능을 통해 level3권한으로 패스워드를 구할 수 있다.

 

 

잘 나온당.

 

'Wargame > FTZ' 카테고리의 다른 글

FTZ level6  (0) 2018.01.05
FTZ level5  (0) 2018.01.05
FTZ level4  (0) 2018.01.04
FTZ level3  (0) 2018.01.04
FTZ level1  (0) 2018.01.03
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

FTZ level1

Wargame/FTZ 2018. 1. 3. 23:14

hint 파일 내용을 확인해보면 다음과 같이 level2 권한에 setuid가 걸린 파일을 찾으라고 한다.

 

 

 

간단하게 다음과 같은 명령어로 찾으면 된다.

 

 

실행파일하나가 검색되는데 무슨기능을 하는지 파악하기 위해 gdb로 분석을 해봤다.

먼저 Main 함수를 보면 다음과 같다.

 

 

전체적인 흐름을 간단하게 보면 다음과 같다.

1. 스택 프레임 구성 후 system 함수 실행을 통해 명령어 실행.

2. chdir 함수를 통해 디렉터리 경로 이동.

3. printf 함수를 통해 문자열 출력.

4. fgets 함수를 통해 입력값을 받음.

5. strstr함수를 통해 특정문자열을 2번 검사하여 존재하면 종료 루틴 존재하지 않으면 정상 루틴으로 이동.

6. 정상루틴으로 왔을 시 setreuid함수를 통해 level2의 권한3002(0xbba)으로 변환 후 system 함수로 명령어 실행.

 

대충 이정도 까지 파악해 놓고 실제로 실행해보면 다음과 같은 바이너리인 것을 확인할 수 있다.

 

 

프로그램을 보면 my-pass와 chmod를 strstr함수를 통해 검증했던 것을 알 수 있고 입력값 중 해당 명령어를 제외한 경우에는 정상루틴을 타면서 setreuid 함수를 통해 level2권한으로 변환 후 system함수를 통해 입력한 명령어 실행 후 종료되는 것을 확인할 수 있다.

 

그렇다면 level2권한으로 my-pass를 실행시켜야하기 때문에 쉘을 하나띄워서 level2 권한을 유지한 후 my-pass 명령어를 통해 패스워드를 구하면 된다.

 

 

잘나온당.

 

 

 

'Wargame > FTZ' 카테고리의 다른 글

FTZ level6  (0) 2018.01.05
FTZ level5  (0) 2018.01.05
FTZ level4  (0) 2018.01.04
FTZ level3  (0) 2018.01.04
FTZ level2  (0) 2018.01.03
블로그 이미지

JeonYoungSin

메모 기록용 공간

,