포너블 풀다가 Full Relro가 걸려있어서 got overwrite를 할 수 없는 상황이였다.

검색 하다 보니 free_hook에 write가 가능해서 이 부분에 one-shot 가젯이나 system함수의 주소를 덮어쓰면 free()함수를 호출할 때 이 hook을 실행한다.

다시말해 one-shot가젯이나 system함수를 호출한다는 것이다.


 이 free_hook의 위치는 아래와 같이 찾을 수 있다.

p &__free_hook

이렇게 찾은 hook에 overwrite를 하게되면 free()함수를 호출하면 overwrite된 가젯을 실행시킨다.

Full Relro가 걸려있을 때 유용하게 사용할 수 있다.

ps. malloc_hook, realloc_hook도 사용가능하니 참고하자.


'HACKING > System hacking' 카테고리의 다른 글

remote socket exploit??  (0) 2019.02.03
memory cheat sheet  (0) 2019.01.17
ltrace로 main함수 심볼 찾기  (0) 2018.09.16
vim jail 문제  (0) 2018.09.08
gdb 멀티프로세스 디버깅  (0) 2018.08.27

+ Recent posts