-
Level16 (assassin -> zombie_assassin)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:39
15번 문제와 다른 부분은 strcpy가 strncpy로 바꼈다는 것과, RET 까지만 입력을 받는다 것 뿐입니다.
이번문제는 FEBP라는 키워드를 이용해야 하는 것 같습니다.
FEBP는 Fake EBP의 약자로, EBP를 조작하여 leave-ret Gadget을 이용해서 IP(Instruction)를 조작하는 공격 기법입니다.
RET에 Stack주소와 Libc 주소를 쓰지 못할때 사용합니다.
사용할 페이로드는 아래와 같습니다.
[ &system ] + [Dummy 4 byte] + [ &"/bin/sh" ] + [Dummy 28 byte] + [ &buf-4 (Fake EBP in SFP) ] + [ &leave (RET) ]
필요한 주소를 모아보면 아래와 같습니다.
system과 "/bin/sh"의 주소는 매번 같은 libc를 사용하기 때문에 같습니다.
system 주소 : 0x40018000+0x40ae0 = 0x40058ae0
"/bin/sh" 주소 : 0x40018000 + 0xe3ff9 = 0x400fbff9
&buf-4 의 주소를 알아 보겠습니다.
core dump 분석을 해보겟습니다.
&buf-4 는 0xbffffa5c 입니다.
마지막으로 leave 주소를 알아보겠습니다.
&leave 는 0x08048311입니다.
이제 exploit 을 해보겠습니다.
login : zombie_assassin
password : no place to hide
'$ 시스템 해킹 $ > Los Of BufferOverflow' 카테고리의 다른 글
Level18 (succubus -> nightmare) (0) 2020.01.01 Level17 (zombie_assassin -> succubus) (0) 2020.01.01 Level15 (giant -> assassin) (0) 2020.01.01 Level14 (bugbear -> giant) (0) 2020.01.01 Level13 (darkknight -> bugbear) (0) 2020.01.01