IMyoungho 2019. 2. 5. 18:33

혹시나 이상하거나 잘못된 것이 있다면 댓글 부탁드립니다.


FTZ 17번이다.

코드를 보니 16번과 비슷한데 shell()함수가 없다.

fgets() 다음 setreuid로 다음 권한을 주는 것을 보니

printit()함수 대신 "/bin/sh"이 실행되는 주소를 넘겨주면 될 것 같다.

일단 printit()의 위치를 찾아보았다.




이전 문제와 같은 방법으로 찾으면 된다




역시 fgets()으로도 주소를 건드릴 수 있는 길이이다. 40개!!

하지만 위에서말한대로 "/bin/sh"을 shell()같은 함수가 보이지 않는다.




그럼으로 eggshell을 이용하면 된다.






그 다음 printit()대신 eggshell의 주소를 씌워주면

call실행 시 printit()대신 eggshell의 주소가 넘겨짐으로 다음단계로 갈 수 있다~

반응형