level16
-
LEVEL 16 zombie_assassin write-upSystem hacking training/Hackerschool LOB 2018. 5. 13. 17:09
assassin -> zombie_assassin 소스코드를 분석해보면 힌트부분에 FEBP라는 중요한 힌트가 있다. Fake EBP라는 기법을 이용하면 풀릴것같다. 인자는 2개 이상이여야하고, argv[1][47]이 이전 문제와 동일하게 \xbf, \x40이면 예외처리가 된다. 그리고 strncpy()로 buffer에 argv[1]의 값을 48개 받기 때문에 bof가 터진다. 이 문제의 의도에 맞게 Fake ebp 기법을 이용하여 문제를 풀면된다. Fake ebp에 대해서는 자세하게 따로 다루기로 하고 페이로드를 짜는 요령만 먼저 익혀보자. 사실 Fake ebp 는 FPO와 매우 유사하기 때문에 풀이가 쉬웠다. 먼저 페이로드의 구성은 다음과 같다. `python -c 'print "dummy(4byte)..