포너블/FTZ

FTZ level 12풀이

삼전동해커 2020. 8. 14. 19:51

level12를 풀어보장.

처음이 어렵지 이해하면 level12는 별루 어렵지 않다.


문제를 보자.



똑같이 attackme와 hint가 있다.


hint먼저 보장.



11번이랑 비슷한데 11번은 입력을 받고 실행했다면 12번은 실행 후에 입력을 받는다.

이 점을 잘 생각해야 한다.


main문을 보장.



main+3,main+9에서 똑같이 0x108과0x8만큼 sub했다.

스택이 264만큼 확장되었다.


main+49에서 lea  0xfffffef8(%ebp),%eax 명령어가 있다.

이건 ebp-264의 값을 eax에 넣었다는 의미이다.

main+55에서 push  eax한 걸 보니 ebp-264가 str배열의 위치인 것 같다.


사실 11번 문제와 풀이법은 똑같다.

256만큼 str배열이고 8만큼 dummy,4만큼 sfp 총 268만큼 값을 넣어준 후 ret에 쉘코드를 넣어주는 문제이다.


근데 입력법이 다르다.

위에서 말했든 프로그램이 실행된 후 입력을 받기 때문에 프로그램을 실행 시킨 후 입력을 해야한다.




이렇게 입력하면 된다.


;cat으로 앞의 python~~명령 실행 후에 cat명령으로 이 내용을 보여준다.  이후 | attackme실행 후에 cat의 내용을 전달해 준다.



이렇게 해주면 된다.