반응형

ftz 30

해커스쿨 ftz level20 (macOS)

해커스쿨 ftz Level20 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level20 단계이다. 드디어 마지막이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level20@서버ip 라고 입력합니다. Id: level20, pw: we are just regular guys 로 로그인하고 파일을 확인하였다. hint를 확인하니 이번에는 배열의 크기보다 작은 크기의 값을 입력받는다. 이번에는 printf에 bleh라는 배열을 그대로 넣어 출력하기 때문에 이를 이용해야겠다. 프로그램을 실행하여 아무값이나 넣어보았다. 일반 문자는 그대로 출력하는 반면 서식문자는 메..

해커스쿨 ftz level19 (macOS)

해커스쿨 ftz Level19 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level19 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level19@서버ip 라고 입력합니다. Id: level19, pw: swimming in pink 로 로그인을 하고 파일을 확인하였다. hint를 확인하였는데 비교적 짧은 코드가 나왔다. setreuid함수가 없어서 이를 포함한 쉘코드를 환경변수를 사용하여 풀어야겠다. Gdb를 실행하였다. Main함수의 구조를 살펴보니 44바이트를 채우고 shell 코드의 주소를 넣으면 될 것 같다. tmp로 이동하여 환경변수에 등록하..

해커스쿨 ftz level18 (macOS)

해커스쿨 ftz Level18 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level18 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level18@서버ip 라고 입력합니다. Id: level18, pw: why did you do it 으로 로그인하여 파일을 확인하였다. hint를 확인하니 이전보다 긴 코드가 출력되었다. 쉘이 실행되기 위해서는 shellout함수가 실행되어야하고 그러기 위해서는 check값이 0xdeadbeef가 되어야 한다. gdb를 실행하였다. Main함수를 보니 코드처럼 내용이 많았다. check의 값보다 높은 주소에 string..

해커스쿨 ftz level17 (macOS)

해커스쿨 ftz Level17 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level17 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level17@서버ip 라고 입력합니다. Id: level17, pw: king poetic 로 로그인을 하고 파일을 확인하였다. hint를 확인하니 이전단계의 코드에서 shell함수가 사라졌다. 쉘코드를 환경변수를 이용하여 사용해야겠다. gdb를 사용하였다. Main함수를 보니 15바이트의 nop코드 후 shell코드를 넣으면 될 것 같다. $export EGG=`python -c 'print"\x90"*15+"\x31\..

해커스쿨 ftz level16 (macOS)

해커스쿨 ftz Level16 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level16 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level16@서버ip 라고 입력합니다. Id: level16, pw: about to cause mass 로 로그인하여 파일을 확인하였다. hint를 확인하니 shell함수와 printit함수, main함수가 보인다. Main함수는 printit 함수의 주소를 호출하는데 이를 shell함수의 주소로 바꾸어주면 될 것 같다. gdb를 통해 main함수를 확인했다. 20바이트의 buf와 20바이트의 dummy를 아무값으로 채..

해커스쿨 ftz level15 (macOS)

해커스쿨 ftz Level15 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level15 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level15@서버ip 라고 입력합니다. Id: level15, pw: guess what 으로 로그인하여 파일을 확인하였다. hint를 확인하니 이번엔 check가 주소값을 입력받도록 되어있다. gdb로 가서 0xdeadbeef가 존재하는 곳을 찾아보았다. 값들 사이에 beef와 dead가 나뉘어 숨어있는 것을 볼 수 있다. 0x80484b2 주소에 0xdeadbeef 값이 들어 있는 것을 알 수 있다. (python -..

해커스쿨 ftz level14 (macOS)

해커스쿨 ftz Level14 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level14 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level14@서버ip 라고 입력합니다. Id: level14, pw: what that nigga want? 로 로그인을 하고 파일을 확인하였다. hint 를 확인하니 이번엔 check 값이 0xdeadbeef가 되어야 함을 알 수 있었다. gdb를 통해 보면 buf 20바이트, dummy 20바이트 후에 check값 4바이트가 나오는 것을 확인하였다. (python -c 'print "A"*40+"\xef\xbe\xad..

해커스쿨 ftz level13 (macOS)

해커스쿨 ftz Level13 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level13 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level13@서버ip 라고 입력합니다. Id: level13, pw: have no clue 로 로그인하여 파일을 확인하였다. hint를 확인하니 소스코드가 나왔고 코드를 살펴보니 i의 값이 0x1234567로 잘 덮어주면 될 것 같다. gdb를 통해 attackme 프로그램을 보기로 했다. main함수의 구조를 확인하였다. buf 배열과 dummy부분을 아무값이나 채우고 i는 01234567로 채우고 다시 dummy값고..

해커스쿨 ftz level12 (macOS)

해커스쿨 ftz Level13 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level13 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level13@서버ip 라고 입력합니다. Id: level12, pw: it is like this 로 로그인을 한 후 파일을 살펴보았다. Hint의 내용을 살펴보았다. gets 함수를 통해 입력을 받는데 ret 값에 쉘코드의 주소를 입력시키면 될 것 같다. 우선 쉘코드를 작성하였다. tmp 디렉토리에서 $export EGG=`python -c 'print "\x90"*15+"\x31\xc0\x50\x68\x2f\x2f\x..

해커스쿨 ftz level11 (macOS)

해커스쿨 ftz Level11 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level11 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level11@서버ip 라고 입력합니다. Id: level11, pw: what!@#$? 로 로그인하였다. ls -al 명령어를 통해 파일들을 확인해보니 이전과 다르게 attackme라는 파일이 보이는 것을 알 수 있다. hint를 확인하니 소스코드가 나왔다. attackme의 소스코드인 것 같다. 버퍼오버플로우를 이용한 문제로 보인다. gdb를 통해 디버깅을 해보기로 했다. Main함수를 살펴보면 main+41 부분에서 ..

반응형