바로 시작해 보도록하겠습니다.
전형적인 버퍼오버플로우네요
256(str)+8(dummy)+4(sfp)+4(ret)
로 쉘코드를 만들어주면 될거 같습니다.
맨 위에서 0x108이 str+dummy값입니다.
실제 구조를 보기 위해 브포를 걸고 돌려봤습니다.
왼쪽 2번째 줄에 0x41414141이 올라가시는걸 보실 수 있습니다. 저렇게 실제 거리를 재야되죠
system(/bin/sh)를 사용해야되니 system함수 주소와
쉘의 주소를 알아내도록 합니다.(저 코드는 한 블로그에서 퍼왔습니다.)
이렇게 해버리면 프로그램이 그냥 하고 종료가 되어버립니다. cat명령어로 다시 실행시키면 해결됩니다.
쉘 구조는 str(268)+system()+dummy+/bin/sh 입니다.
저는 이상하게 또 안되더라구요...(도데체 뭐가 문제지...) 일단 이론적으로 알고 했으니 오늘은 여기서 마치도록 하겠습니다.
'포너블 > Hackerschool F.T.Z' 카테고리의 다른 글
20170811 F.T.Z level14 (0) | 2017.08.11 |
---|---|
20170810 F.T.Z level13 (0) | 2017.08.10 |
20170808 F.T.Z level 11 (0) | 2017.08.08 |
20170807 F.T.Z level 10 (0) | 2017.08.07 |
20170802 F.T.Z level 9 (0) | 2017.08.02 |