Pwnable/RootMe (3) 썸네일형 리스트형 Root Me wargame ELF x86 - Stack buffer overflow basic 2 write-up 1번 문제와 비슷한 문제이다. 소스코드를 보면서 이해해보자. #include #include #include #include void shell() { setreuid(geteuid(), geteuid()); system("/bin/bash"); } void sup() { printf("Hey dude ! Waaaaazzaaaaaaaa ?!\n"); } void main() { int var; void (*func)()=sup; char buf[128]; fgets(buf,133,stdin); func(); } 버퍼 변수 위에 sup 함수의 주소 값을 담는 변수가 있고 그 변수로 함수를 호출한다. 128byte짜리 변수에 133byte를 입력받기 때문에 bof가 일어난다. bof를 통해 버퍼 변수에 12.. Root Me wargame ELF x86 - Stack buffer overflow basic 1 write-up 간단한 bof 문제이다. 소스코드를 열어보자. #include #include #include #include int main() { int var; int check = 0x04030201; char buf[40]; fgets(buf,45,stdin); printf("\n[buf]: %s\n", buf); printf("[check] %p\n", check); if ((check != 0x04030201) && (check != 0xdeadbeef)) printf ("\nYou are on the right way!\n"); if (check == 0xdeadbeef) { printf("Yeah dude! You win!\nOpening your shell...\n"); setreuid(geteuid(.. Root Me wargame ELF x86 - Format string bug basic 2 write-up % 안 써놓고 못 찾아서 1시간 넘게 삽질했다... 너무 힘드니까 소스코드를 열어보자. #include #include #include #include int main( int argc, char ** argv ) { int var; int check = 0x04030201; char fmt[128]; if (argc 이전 1 다음