HACKING/System hacking

free_hook으로 Full Relro 우회

공부하자~~ 2018. 9. 17. 00:47

포너블 풀다가 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도 사용가능하니 참고하자.