-
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()의 주소로 변경이 되었음을 확인할 수 있다.
반응형