fkillrra 2018. 2. 4. 16:13

[문제]



win()를 실행시키면 된다.


이 프로그램 역시 gets()의 사용으로 bof 취약점이 존재하고 이 취약점을 이용하여


함수 포인터 fp에 win()의 주소를 넣어주면 된다.


[풀이]


dummy값 확인을 위해 gdb로 열어본다.



win()의 주소도 함께 알아보았다.


이 프로그램 역시 페이로드에 참고해야할 dummy값이 없다.


즉, 함수 포인터 fp와 char buffer[64]가 붙어있다는 뜻이다.


따라서 gets()의 bof 취약점을 이용하여 64 바이트 A를 넣어주고, 위에서 구한 win()의 주소를 구하면 성공한다.



주소가 정확히 win()의 주소로 변경이 되었음을 확인할 수 있다.

반응형