코드가 매우 짧은걸 볼 수 있다.
너무 짧아서 무엇이 부족한지 몰랐다.
평소대로 환경변수를 이용하여 buffer overflow를 이용하여 풀렸지만
다른 사람들의 풀이를 읽어보고
무엇이 부족한지 알 수 있었다.
지금까지 사용해 왔던 shellcode에는 setuid가 포함되어 있었기 때문에 생각하지 못했던 것이다.
문제를 다시보면 setuid가 존재하지않고 system역시 존재하지 않는다.
따라서 이러할때 사용할 수 있는 공격방식으로 RTL(Return to Library)가 존재한다.
자세한 내용은 나중에 따로 다시 정리해 보고자 하지만 간단히 내용을 살펴 보자면
위의 분석한 내용과 같이 setreuid, system 함수는 프로그램이 실행 될때 어딘가의 library에 존재하기 때문에
이를 ret address에 똑같이 함수를 실행하듯 넣어주면서 매개변수로 실행하고자 하는 명령어를 넣어주면 함수가 실행되듯 실행 되는 것이다.
'정보보안 > FTZ' 카테고리의 다른 글
[FTZ]level20 (0) | 2022.08.13 |
---|---|
[FTZ]level18 (0) | 2022.07.31 |
[FTZ]level17 (0) | 2022.07.25 |
[FTZ]level16 (0) | 2022.07.25 |
[FTZ]level15 (0) | 2022.07.25 |