해커스쿨 - level19
level19의 문제는 다음과 같았다. 해당 문제에 대해서 분석해보면 gets 함수를 사용하여 버퍼 오버플로우를 일으킬 수 있다. 해당 문제에서는 buf 변수의 사이즈가 작아서 다음을 고려하면 buf 변수에 쉘코드를 덮어씌우는 것은 무리일 것으로 예상된다. 따라서 우리가 해야할 공격 방법은 지난번 레벨15 에서 보였던 방법과 비슷하게 쉘코드를 환경변수로 저장하고 스택의 RET 메모리 주소를 해당 환경변수가 존재하는 주소로 바꿔주는 것을 목표로 하겠다. 우선 gdb로 디스어셈블을 수행한다. 스택의 사이즈가 40bytes이므로 dummy의 사이즈는 20bytes이다. 즉, buf(20bytes) + dummy(20bytes) + SFP + RET 의 구조를 지니고 있다. 우리는 RET에 쉘코드가 저장된 환경..
[Hackerschool] F.T.Z
2017. 11. 17. 10:42