-
stack7Exploit-Exercise 2015. 12. 8. 23:23
#include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <string.h> char *getpath() { char buffer[64]; unsigned int ret; printf("input path please: "); fflush(stdout); gets(buffer); ret = __builtin_return_address(0); if((ret & 0xb0000000) == 0xb0000000) { printf("bzzzt (%p)\n", ret); _exit(1); } printf("got path %s\n", buffer); return strdup(buffer); } int main(int argc, char **argv) { getpath(); }
그저 0xb..... 로시작하는 오프셋만 아니면된다.
이것도 32비트이기때문에 ulimit -s unlimited 을 사용해 라이브러리 ASLR을 해제할수있다.
그럼 간단하게 RTL로 풀린다.
'Exploit-Exercise' 카테고리의 다른 글
Fusion Level 1 (0) 2016.07.12 format0 (0) 2015.12.08 stack6 (0) 2015.12.08 Fusion Level 0 (0) 2015.09.09 heap0 (0) 2015.06.27