[pwnable.kr] bof
2020.05.05
pwnable.kr bof 시작! buffer overflow 취약점이 발생하는 gets() 함수가 보인다. 그리고 key 값이 0xcafebabe 일 경우 쉘을 획득할 수 있다. gdb 를 이용하여 살펴보자. func() 함수를 보면 0x48 인 72 byte 만큼 변수가 할당되어 있다. 그리고 두 번째 call 인 gets() 함수의 입력 인자인 overflowme 가 들어있는 주소가 ebp-0x2c 인 것을 알 수 있다. 0xcafebabe 와 cmp 하는 key 의 주소가 ebp+0x08 인 것도 확인할 수 있다. 정리해보면 gets() 함수를 통해 key 까지 접근하기 위해서는 0x2c + 0x08 인 52 byte 만큼 값을 넣어줘야 한다. 그 다음 cafebabe 를 넣어주면 쉘을 얻을 수 ..