PWN/TIP
rtld overwrite
J1W0N
2022. 10. 6. 15:46
728x90
exit함수로 실행흐름을 바꾸는 방법이있다. FULL RELRO거나 PIE base는 모르지만 libc base는 알때 사용하기 좋은 공격 기법인 것 같다!
main함수에서 ret를 하게 되면 __libc_start_main+231 로 간다. 그리고 exit함수를 호출하게 되는데
exit함수는 내부적으로 __run_exit_handlers -> _dl_fini -> _rtld_lock_lock_recursive(_dl_load_lock) 이런 실행 흐름을 가지고 있다.
따라서 _rtld_lock_lock_recursive를 system으로 바꾸고
_dl_load_lock을 sh로 바꾸면 쉘이 실행될 것이다.
exit가 뭔가 하기에 참 좋은 함수인거 같다