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가 뭔가 하기에 참 좋은 함수인거 같다

'PWN > TIP' 카테고리의 다른 글

Linux command  (0) 2020.08.04
FMT  (0) 2020.07.06
malloc_hook을 one_shot으로 덮었을 때  (0) 2019.08.26
입력 함수 입력받지 못하는 값 정리  (0) 2019.08.15
environ 으로 stack leak 하기!  (0) 2019.08.09