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 |