본문 바로가기
HACKING/HACKERSCHOOL FTZ

hackerschool FTZ LEVEL 9,10 문제 풀이!

by pharmerci 2021. 4. 6.
728x90

하 드디어 마지막,,,(진짜 너무너무 힘들당) 마지막은 아니지만 오늘은 여기까지임!

 

9번

먼저 아이디랑 비밀번호 입력하고~~ ls-al 명령어를 입력해본다. 그러면 hint 파일이 보인다.

 

 

 

 

 

파일안을 cat 명령어로 확인해보면 다음과 같은 소스코드가 있고, 이를 이용해서 level10의 권한을 얻으라는 힌트를 볼 수 있다.

 

 

 

 

 

이렇게 vi 명령을 이용해서 소스코드를 입력을 해줬는데. 이 소스코드는 buf2의 크기는 10인데 40만큼 입력을 받으면서 버퍼오버플로우 취약점이 생긴다. buf2가 선언되고 buf가 선언되었기 때문에 입력값이 buf를 넘어서면 buf2를 침범하게 된다. 어쨌든 buf2에 go값이 되면 level10권한 쉘을 띄워주는 듯 하다.

 

 

 

 

 

입력 해주고 컴파일을 해준 다음에

 

 

 

 

 

gdb를 사용해서 분석을 해보자. gdb -q bof로 gdb 를 켜주고 intel 방식으로 명령어를 입력할 것이라는 설정을 해준 다음에 disas main을 입력해주면 다음과 같이 코드가 디스어셈블 된다. 여기서 우리는 buf와 buf2의 시작점을 아는것..!

ebp-40, ebp-24이렇게 각각 시작점이라는 것을 알 수 있다.

그러니까 16바이트를 채워주고 그 다음은 buf2가 들어가겠구나! 이렇게 판단할 수 있는 겁니다.

 

 

 

 

 

그리고 저렇게 bof 파일을 실행시켜주면 입력창이 뜨는데 쓰레기값으로 16바이트를 채워주고 다음에 우리가 쉘을 얻을 수 있는 조건 go를 입력해주면? good skill! 이라고 하면서 level10의 쉘을 얻게 됐따

 

 

 

 

 

my-pass 입력해주면 다음과 같이 비밀번호 얻었다 룰루~

 

 

 

 

10번(ㅠㅠ)

후하후하 드디어 마지막이다. 로그인을 해주고~ ls -al 확인해주면 역시나 보이는 hint cat 명령어로 내용물을 보면 다음과 같다. 오호 공유메모리...? 관련된 공부가 필요해보인다.

 

 

 

 

 

ipcs 명령어는 공유메모리와 관련된 명령어인데 입력해보니 key가 위에 힌트에 제시된대로 7530(=0x00001d6a)인게 있다. tmp 폴더로 이동해서 코드를 작성하자

 

 

 

 

 

이렇게 들어가주고~

 

 

 

 

 

이렇게 이렇게..!!!

 

 

 

 

 

 

컴파일 해준 다음에 실행해주면..!? 멍멍이랑 구타의 대화를 우리는 엿봤당! 패스워드 얻어냄 오예~!

728x90