LOB Level 2 (Gremlin)
이번 문제는 버퍼 크기가 매우 작다. 노답. 암만 찾아도 쉘코드 중 가장 짧은게 25바이트 인데.. 버퍼가 16바이트이다. 공격을 하지말란 것인가. 아니? 꼭 페이로드를 버퍼에만 올릴 필요는 없다. 어떻게 넣을 수 있을까. 여러가지 방법이 있지만 여기서는 argv에 올리는 공격법을 선택하겠음. 일단 [**argv] [argc] [ret] [sfp] 스택이 요래 되어 있다. argv에 올린다고 했는데, 정확하게 argv[2]에 올리는 것이다. argv[1]은 버퍼로 복사가 되므로 해봤자 16바이트 밖에 못쓴다. argv[1]에 RET가 argv[2]를 가르키도록 맞춰서 인자값을 넣고, (['A'*20]+[argv[2] 주소]) argv[2]에 페이로드를 올린다. 먼저 argv[2]의 주소를 찾는다. 순서대..