CTF

FSB(Format String Bug) %n %hn %hhn 으로 숫자 입력시 메모리 상태

JUNFUTURE 2022. 2. 9. 03:08

FSB 문제를 풀때에 한번에 4바이트를 %n을 통해 입력하게되면 너무 많은 값들을 출력하며 TIMEOUT이 발생할 수 있다.
그래서 %hn을 이용해 2바이트씩 나누어서 전송하게 되는데, 이때 기억해두면 좋을 사항들이 있다.

  1. %hn을 입력할때. 해당 위치를 기준으로 큰 주소 값으로 입력된다. (ex. $exit_got+0에 입력시 $exit_got+0, $exit_got+1에 입력됨)
  2. 리틀엔디안으로의 숫자 입력이니 숫자의 낮은 자릿수 부분이 낮은 주소에 입력된다.