Hacking/Pwn.

FSB 공격시 유용한 것들

2018. 7. 27. 22:42



아이린 움짤로 간단하게 시작하는 블로그 포스팅


포너블 공부를 코드게이트 주니어 본선 이후로 완전히 놓아버렸더니, 감이 너무나 많이 떨어져서 요즘 다시 포너블을 공부하고 있다. 내가 놓기 전에도 FSB 같은 경우는 '어떤 취약점이고 어떻게 공격하면 된다'라는 것만 알고 있고 실제로 CTF 문제를 풀거나 직접 해본 적이 없어서 지금 하고 있다. 


 사실 FSB라는 건 정말 공격자 입장에서는 어이없는 공격 중 하나이다. 이건 정말로 프로그래머가 귀찮은 작업을 하기 싫어서 나는 취약점이기 때문이다. 



 위의 소스를 보면 FSB 취약점이 바로 보이게 된다. printf(buffer); 에서 취약점이 발생한다.



argv[1] 로 %p를 입력하면 printf는 ESP 뒤의 스택을 보여주게 된다. %p 가 printf 로 전달된 가변인자가 없더라도 뒤에 인자가 있다고 판단하는 것이다. 결국 인자 전달은 push .. push .. 로 하는 것이니깐ㅋㅋ



%p로 우리가 입력한 버퍼가 어디에 있는지 찾았다. %10$p 로 10번째 인자를 받아올 수 있다.


printf("%10$d", 1,2,3,4,5,6,7,8,9,10);     // 10이 출력됨.

 


'Hacking > Pwn.' 카테고리의 다른 글

잊기전에 적어두는 bash trick  (0) 2018.11.06
ROP with libc leak  (0) 2018.09.19
LoB에서 bash2 명령을 사용하는 이유  (0) 2018.07.13
python jail  (0) 2018.06.21
Shell Escaping tips  (0) 2018.04.17