level17

 

 힌트를 확인해보면 이전 문제들과 비슷한 코드를 볼 수 있다. setuid를 설정하고 call() 함수를 실행한다.

 

 gdb로 살펴보면 call 함수가 실행되면 eax에 존재하는 주소를 호출한다. 이는 여태까지 풀었던 문제와 비슷하게 해결할 수 있다. level15와 비슷하게 하되, 환경변수는 level11, 12에서 진행했던 것처럼 쉘 코드를 대입한다. 

 

 

해커스쿨 FTZ level15

level15  힌트를 확인해보면 14번 문제와 비슷하지만, 포인터 변수를 오버플로우 시켜야 한다는 것을 확인할 수 있다.  gdb로 살펴봐도 역시 동일하게 56 byte를 할당받아 [ebp-16]을 가져오므로 40byte+a

assb.tistory.com

 

해커스쿨 FTZ level11

level11  문제 화면이다. uid를 설정하고 strcpy를 실행한다. strcpy buffer overflow 문제라 구글링하여 방법을 찾아 진행하였다.  gdb로 살펴보면 str의 크기를 확인할 수 있다. sub $0x108, %esp에 해당되..

assb.tistory.com

 

 환경변수로 쉘 코드를 작성해준 뒤 그 환경변수의 주소값을 구한다. 

 

 이 주소값을 대입하면 쉘이 setuid로 설정된 권한으로 쉘이 실행되고, 패스워드를 확인할 수 있다. 

 

 

 why did you do it

728x90

'CTF > 시스템' 카테고리의 다른 글

protostar stack0  (0) 2020.10.29
해커스쿨 FTZ level18  (0) 2020.10.29
해커스쿨 FTZ level16  (0) 2020.09.24
해커스쿨 FTZ level15  (0) 2020.09.24
해커스쿨 FTZ level14  (0) 2020.09.22