전체 글(303)
-
FTZ level18
이번시간에는 level18에 대하여 풀어보겠습니다 공부를 하는 입장이니 틀린게 있어도 양해부탁드리겠습니다 먼저 ls -al을 통해 전체 디렉토리와 파일을 확인해보니 attackme가 보입니다 힌트파일을 열어주었는데 못보던 코드도 보이고 힌트가 역대급으로 기네요... 다는 모르겠어서 중요한 부분만 분석해보겠습니다 char형 stirng에 100bytes할당 int형 check변수 선언, int형 x 0으로 초기화, int형 count 0으로 초기화, fd_set의 구조체 fds선언(구글링) printf("Enter your command") 출력, 출력버퍼를 fflush로 청소(구글링) while무한루프돌려주며 count가 100이상이면 printf출력, check가 0xdeadbeef면 shellout(..
2022.03.10 -
FTZ level17
이번시간에는 level17에 대하여 풀어보겠습니다 공부를 하는 입장이니 틀린게 있어도 양해부탁드리겠습니다 먼저 ls -al을 입력하여 전체 디렉토리와 파일확인해 보니 attackme라는 파일이 또 있네요 힌트파일을 열어주었습니다 int형 crap변수선언했고 포인터형함수call()로 printit()을 받고있네요 char형 buf에 20bytes 할당해주고 fgets함수로 48bytes만큼 buf에 할당해줍니다[버퍼오버플로우발생] level18 ID를 얻을수있는setreuid가 있고 call함수로 호출합니다 이번에는 shell을 실행시켜주는 함수가 없습니다 call함수를 부르고 프로그램을 종료시키기 때문에 현재상태에서는 setreuid에 접근할수가 없겠네요... 이번에는 저번과 다르게 환경변수에 쉘코드를 ..
2022.03.09 -
FTZ level16
이번시간에는 level16에 대하여 풀어보겠습니다 공부를 하는 입장이니 틀린게 있어도 양해부탁드리겠습니다 ls -al을 명령하여 전체 디렉토리와 파일목록을 확인해 보니 이번에도 attackme파일이보이네요 힌트 파일 내용을 보니 함수들도 보이고 포인터함수도 보이네요... 한번 분석을 해보겠습니다 - int형 crap변수선언 - void형 함수포인터 call()선언 (printit 참조함) - char형 buf배열에 20bytes할당 -fgets함수로 48bytes만큼 입력받아 buf에 전달 -> 버퍼오버플로우 취약점발생 - call() 함수호출 -> printit()호출 -shell()에서는 setreuid가 있으므로 level17의 권한이 있음 -printit()에서는 Hello there 출력 이번에..
2022.03.09 -
FTZ level15
이번시간에는 level15에 대하여 풀어보겠습니다 공부를 하는 입장이니 틀린게 있어도 양해부탁드리겠습니다 ls -al을 명령하여 전체 디렉토리와 파일목록을 확인해 보니 이번에도 attackme파일이 있네요 hint파일 열어보니 level14코드와 상당히 비슷하네요 * int형 crap선언 int형포인터 check선언 char형 buf배열에 20bytes할당 fgets함수를 통해서 buf에 문자열 45bytes 만큼 입력받음 포인터 check가 가리키는 주소값이 0xdeadbeef 주소값과 같으면 level15 id /bin/sh 실행 * 이번에 다른점은 check를 char형 포인터 변수로 선언한것입니다 포인터는 주소값을 가리키므로 결국 저 0xdeadbeaf의 주소값을 알아내서 check자리에 넣어주면..
2022.03.09 -
6051
문제 설명 두 정수(a, b)를 입력받아 a의 값이 b의 값과 서로 다르면 True 를, 같으면 False 를 출력하는 프로그램을 작성해보자. 입력 2개의 정수(a, b)가 공백을 두고 입력된다. -2147483647
2022.03.09 -
6050
문제 설명 두 정수(a, b)를 입력받아 b의 값이 a의 값 보다 크거나 같으면 True 를, 같지 않으면 False 를 출력하는 프로그램을 작성해보자. 입력 2개의 정수(a, b)가 공백을 두고 입력된다. -2147483647
2022.03.09