zombie_assassin
-
Level17 (zombie_assassin -> succubus)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:43
소스코드가 좀 많이 길어졌습니다. DO -> GYE -> GUL -> YUT ->MO 순으로 함수를 호출해서 system(cmd) 를 이용하는 문제입니다. argv[1]에는 libc를 사용할 수 없고, RET 에는 DO 함수의 주소가 들어가야 합니다. 일단 RET를 DO함수 주소로 맞춰주면 아래와 같이 페이로드를 작성하면 됩니다. [Dummy 44 byte] + [DO 함수 주소 (프로그램 RET)] + [GYE 함수 주소 (DO 함수 RET)] + [GUL 함수 주소 (GYE 함수 RET)] + [YUT 함수 주소 (GUL 함수 RET)] + [MO 함수 주소 (YUT 함수 RET)] 의 형식으로 넣어야 할것 같습니다. 각 함수의 주소를 objdump를 이용해서 알아보겠습니다. DO : 0x080487..
-
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"의 ..