-
Level15 (giant -> assassin)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:38
이번에는 no stack, no RTL 이라고 되어 있습니다.
스택과 RTL 기법에 이용되는 libc를 사용할 수 없고, buffer+sfp hunter로 44까지 0으로 초기화 됩니다.
stack과 libc 가 안된다면 함수 내부의 명령어 주소를 RET에 넣어서 문제 풀이를 하면 될 것 같습니다.
RET에 다시 RET를 넣게 되면 system 주소를 이어서 넣을 수 있기 때문에 가능할 것 같습니다.
사용하게될 exploit 페이로드는 아래와 같습니다.
[Dummy 44 byte] + [ret (실행파일 RET 위치)] + [system (추가한 RET의 RET위치)] + [Dummy 4 byte] + [/bin/sh]
똑같은 libc를 사용하고 있기 때문에 system 주소와 /bin/sh 주소가 매번 같습니다.
system 주소 : 0x40018000+0x40ae0 = 0x40058ae0
"/bin/sh" 주소 : 0x40018000 + 0xe3ff9 = 0x400fbff9
ret 주소를 하나 찾아 보겠습니다.
ret는 main에 들어있는 ret를 사용해 보겠습니다.
ret 주소 : 0x0804851e
이제 exploit를 해보겠습니다.
login : assassin
password : pushing me away
'$ 시스템 해킹 $ > Los Of BufferOverflow' 카테고리의 다른 글
Level17 (zombie_assassin -> succubus) (0) 2020.01.01 Level16 (assassin -> zombie_assassin) (0) 2020.01.01 Level14 (bugbear -> giant) (0) 2020.01.01 Level13 (darkknight -> bugbear) (0) 2020.01.01 Level12 (golem -> darkknight) (0) 2020.01.01