티스토리 뷰

System/FTZ

[FTZ] level9

MitNy 2017. 9. 13. 13:39


level9의 힌트는 다음과 같다.

다음은 /usr/bin/bof의 소스이다.


#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>


main(){


  char buf2[10];

  char buf[10];


  printf("It can be overflow : ");

  fgets(buf,40,stdin);


  if ( strncmp(buf2, "go", 2) == 0 )

   {

        printf("Good Skill!\n");

        setreuid( 3010, 3010 );

        system("/bin/bash");

   }

}


이를 이용하여 level10의 권한을 얻어라.



bof만 봐도 buffer over flow 문제라는 것을 알 수 있다.


buf와 buf에 공간을 10씩 주지만 fgets에서는 40만큼 입력받아 buf에 저장한다.

그 후에 buf2에서 크기2만큼을 비교했을 때 go와 일치하면

"Good Skill!" 이 출력되고 /bin/bash가 실행된다.


python으로 여러번 입력을 하다가 여러번 하다보니 쉘을 따긴 했지만

코드 분석도 하면서 풀었다




level10의 쉘을 따낸 후 my-pass 명령어를 입력하면

level10의 password를 알아낼 수 있다.




level10 password is interesting to hack!

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

[FTZ] level11  (0) 2017.09.18
[FTZ] level10  (0) 2017.09.14
[FTZ] level8  (0) 2017.09.11
[FTZ] level7  (0) 2017.09.08
[FTZ] level6  (0) 2017.09.08
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함