stack3
-
Stack3 풀이System hacking training/Protostar 2018. 2. 4. 16:13
[문제] win()를 실행시키면 된다. 이 프로그램 역시 gets()의 사용으로 bof 취약점이 존재하고 이 취약점을 이용하여 함수 포인터 fp에 win()의 주소를 넣어주면 된다. [풀이] dummy값 확인을 위해 gdb로 열어본다. win()의 주소도 함께 알아보았다. 이 프로그램 역시 페이로드에 참고해야할 dummy값이 없다. 즉, 함수 포인터 fp와 char buffer[64]가 붙어있다는 뜻이다. 따라서 gets()의 bof 취약점을 이용하여 64 바이트 A를 넣어주고, 위에서 구한 win()의 주소를 구하면 성공한다. 주소가 정확히 win()의 주소로 변경이 되었음을 확인할 수 있다.