crap과 check라는 4바이트짜리 변수가 생겼다

구조는

| buf(20) | dummy() | crap(4) | dummy() | check(4) |

이번문제는 간단하게 check부분이 0xdeadbeef로 덮어지면 되는 문제이다.

따라서 dummy부분이 어느정도인지 모르니 

채워지게 넉넉잡아 4*15=60바이트 정도 채웠다. 

Flag : guess waht

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

[FTZ] level16  (0) 2016.07.10
[FTZ] level15  (0) 2016.07.10
[FTZ] level13  (0) 2016.07.10
[FTZ] level12  (0) 2016.07.10
[FTZ] level11  (0) 2016.07.10


힌트를 까서 소스코드를 보면 기존의 11번,12번과는 달리 i라는 것이 새로 생기고

i가 0x1234567이 아닐시 Warnning: Buffer Overflow!!! 를 출력하며 kill로 sigsegv을 전달한다.

따라서 i에는 0x1234567을 넣어줘야한다.

gdb로 까보니 1048바이트이다. 그냥 모든 버퍼를 0x1234567로 채워버리고, 뒤에 쉘코드 주소를 넣어주면 된다.

| buf(1024) | dummy(12) | i(4) | dummy(8) | ebp(4) | ret(4) | 

이러한 스택구조를 이루고 있으므로 

4 * 262 = 1048

./attackme `python -c 'print [buf]*262+[ebp(A)]*4+ret'`

이러한 형식이고,

./attackme `python -c 'print "\x67\x45\x23\x01"*263+"\xf4\xfb\xff\xbf"'`

이렇게 짤 수 있다.

Flag : what that nigga want?

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

[FTZ] level15  (0) 2016.07.10
[FTZ] level14  (0) 2016.07.10
[FTZ] level12  (0) 2016.07.10
[FTZ] level11  (0) 2016.07.10
[FTZ] level10  (0) 2016.07.10

이번에도 bof문제이다 힌트를 까보면 이런식의 코드가 나온다.

gdb로 attackme를 까보면, 이번에도 마찬가지로 버퍼크기는 같은것을 볼수 있다.

따라서 level11과 같은 방식으로 해결 할 수 있다.

환경변수를 등록하고, NOP슬라이드 방식으로 익스플로잇을 짠다.


level11과는 다르게 인자값으로 받는것이 아니라 프로그램에서 직접 값을 받는 것이기 때문에 이런 형식으로 짠다.


Flag : have no clue

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

[FTZ] level14  (0) 2016.07.10
[FTZ] level13  (0) 2016.07.10
[FTZ] level11  (0) 2016.07.10
[FTZ] level10  (0) 2016.07.10
[FTZ] level9  (0) 2016.07.10

힌트를 까보면 코드 하나가 나온다. bof를 해야하는 문제이다.

attackme를 gdb로 까보면 이런구조인것을 알수 있다.

| str[256] | dummy[8] | ebp[4] | ret[4] |

간편하게 환경변수를 이용해서 풀려고 한다. 

따라서 환경변수 SHELLCODE의 주소값과 NOP슬라이드 방식을 사용해 쉘을 따낸다.   

FLAG : it is like this

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

[FTZ] level13  (0) 2016.07.10
[FTZ] level12  (0) 2016.07.10
[FTZ] level10  (0) 2016.07.10
[FTZ] level9  (0) 2016.07.10
[FTZ] level8  (0) 2016.07.10

힌트를 보니 이런 내용이 있다.

공유 메모리를 이용해서 코딩을 해서 푸는 방법인것같다.


다음과 같이 구글링을 통해 관련 함수를 찾아가며 코딩을 하였다.

컴파일 후 실행시켜 패스워드를 알아내었다.


Flag : what!@#$?

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

[FTZ] level12  (0) 2016.07.10
[FTZ] level11  (0) 2016.07.10
[FTZ] level9  (0) 2016.07.10
[FTZ] level8  (0) 2016.07.10
[FTZ] level7  (0) 2016.07.10

다음 소스가 나왔다. 먼저 코드를 분석하면,

buf와 buf2의 선언과 40바이트 이하의 크키를 입력받아서 buf에 저장하고

buf2의 2바이트값이 go와 비교해서 같다면 printf로 굳스킬이라는 메세지를 띄운 후 bash쉘을 실행시켜주는 프로그램이다.

따라서 저 소스에 buf와 buf2의 거리를 구하는 코드를 짰다.

이것을 실행 시켜보니 두 주소값이 나왔고, 이 값을 뺀 결과 16이라는 값이 나왔다.

따라서 16번째와17번째가 buf2의 2바이트인것을 알 수있다.

Flag : interesting to hack!

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

[FTZ] level11  (0) 2016.07.10
[FTZ] level10  (0) 2016.07.10
[FTZ] level8  (0) 2016.07.10
[FTZ] level7  (0) 2016.07.10
[FTZ] level6  (0) 2016.07.09

힌트를 보니 이런 내용이 나온다

용량이 2700인 파일을 검색해본 결과


/etc/rc.d/found.txt 에 있 level9의 shadow 파일이 있다는 것을 알았다.


  1 : 사용자명 
  2 : 패스워드 
  3 : 패스워드 파일 최종 수정일 
  4 : 패스워드 변경 최소일 
  5 : 패스워드 변경 최대일 
  6 : 패스워드 만료 경고 기간 
  7 : 패스워드 파기 기간 (패스워드 파기 후 계정 비활성 기간) 
  8 : 계정 만료 기간 
  9 : 예약 필드 


이라고 한다. 따라서 2번째 필드에 있는것이 암호부분이고, 이 내용들을 텍스트파일로 저장하여 '존 더 리퍼'로 돌려보았다.




Flag : apple

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

[FTZ] level10  (0) 2016.07.10
[FTZ] level9  (0) 2016.07.10
[FTZ] level7  (0) 2016.07.10
[FTZ] level6  (0) 2016.07.09
[FTZ] level5  (0) 2016.07.09


힌트를 까보니 이러한 내용이 뜬다.

1. 패스워드는 가까운곳에..

2. 상상력을 총동원하라.

3. 2진수를 10진수로 바꿀 수 있는가?

4. 계산기 설정을 공학용으로 바꾸어라.


저 /bin/level7 을 실행해보니 패스워드를 입력하라고 하였고, 그화면에서 입력하니 아래화면이 나왔다.

힌트에 따라 이 문구를 2진수로 변환 후 10진수로 변환해보기로 했다.


--_--_-  -> 1101101 -> 109

--____-  -> 1100001 -> 97


---_-__  -> 1110100 -> 116


--__-_-  -> 1100101 -> 101



아스키코드 값으로 109 = m , 97 = a , 116 = t, 101 = e 따라서 mate가 된다.



Flag : break the world


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

[FTZ] level9  (0) 2016.07.10
[FTZ] level8  (0) 2016.07.10
[FTZ] level6  (0) 2016.07.09
[FTZ] level5  (0) 2016.07.09
[FTZ] level4  (0) 2016.07.09


로그인을 하자마자 hint가 출력된다.

 인포샵 bbs의 텔넷 접속 메뉴에서 많이 사용되던 해킹방법이라고 한다.



계속 하면 이런 창이뜨며 접속을 시도해준다.


 인포샵 bbs의 텔넷 접속 메뉴에서 많이 사용되던 해킹방법은 작업을 중지하는 ctrl+c 명령어 이다.

ctrl+c를 하면 level6 쉘화면으로 돌아가게 된다.



Flag : come together


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

[FTZ] level8  (0) 2016.07.10
[FTZ] level7  (0) 2016.07.10
[FTZ] level5  (0) 2016.07.09
[FTZ] level4  (0) 2016.07.09
[FTZ] level3  (0) 2016.05.20


힌트를 보니 /usr/bin/level5 프로그램은 /tmp 디렉토리에 level5.tmp 라는 이름의 임시파일을 생성한다고 한다.

먼저 저 경로로 가서 실행을 해보았지만, 아무것도 생성되지 않았다.


따라서 먼저 level5.tmp 라는 파일을 만들고 덮어씌우는 형식으로 해야할 것 같아서

touch level5.tmp로 파일을 만들고 실행해보았더니 플래그값이 나왔다.


Flag : what the hell

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

[FTZ] level7  (0) 2016.07.10
[FTZ] level6  (0) 2016.07.09
[FTZ] level4  (0) 2016.07.09
[FTZ] level3  (0) 2016.05.20
[FTZ] level2  (0) 2016.05.20

+ Recent posts