level17
힌트를 확인해보면 이전 문제들과 비슷한 코드를 볼 수 있다. setuid를 설정하고 call() 함수를 실행한다.
gdb로 살펴보면 call 함수가 실행되면 eax에 존재하는 주소를 호출한다. 이는 여태까지 풀었던 문제와 비슷하게 해결할 수 있다. level15와 비슷하게 하되, 환경변수는 level11, 12에서 진행했던 것처럼 쉘 코드를 대입한다.
환경변수로 쉘 코드를 작성해준 뒤 그 환경변수의 주소값을 구한다.
이 주소값을 대입하면 쉘이 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 |