포너블 풀다가 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 |