공부/JUN STUDY
fsb 이젠 좀 이해하기 (어떻게 arbitrary write가 되는가?)
JUNFUTURE
2024. 9. 27. 22:18
fsb의 무시무시한 점은
1. 임의주소에
2. 원하는 값을
쓸 수 있다는 것이다.
임의 주소에 쓸 수 있는 이유는 %187c%11$hhn 덕분이고
원하는 값을 쓸 수 있는 이유는 %187c%11$hhn 덕분이다.
여기서 또 레전드인게 임의주소인 이유는 %11$인자 위치에 있는
'그 주소에' 값을 쓸 수 있기 때문이다. (&의 개념 -> printf("%s", buf) 처럼. %s는 buf(char *) 를 참조한다.)
따라서 %11$ 위치에 원하는 주소를 입력하고
%(원하는 값)c 이용해서 원하는 값을 만들면 된다.