[Pwnable] Format String Bug
2021. 3. 18. 23:57
Hacking/Pwnable
포맷 스트링 버그는 대표적으로 printf와 sprintf와 같은 포맷 스트링을 사용하는 함수에서 사용자가 포맷 스트링 문자열을 통제할 수 있을 때 발생하는 취약점이다. 포맷 스트링에는 다양한 종류가 있고, 주어진 인자에 대해 각 포맷 별로 정해진 기능을 수행한다. 만약 공격자가 이러한 포맷 스트링을 조작할 수 있다면, printf 함수의 인자가 저장되는 스택의 내용을 읽거나 %n 혹은 %s 등 메모리 참조 포맷 스트링을 이용해 메모리 커럽션을 유발할 수 있다. 다음은 실습에 쓸 fsb.c 파일이다. // gcc -o fsb1 fsb1.c -m32 -mpreferred-stack-boundary=2 #include #include #include #include char flag_buf[50]; void..