소스를 보면 RET값에 공유 라이브러리 영역과 스택영역값을 쓸수없도록 되어있다. 일반적으로 생각했을땐 익스플로잇 하기 힘들다 생각할 수 있지만 RET Sled 기법을 사용하면 우회가 가능하다.


RET값에 RET명령어의 주소값을 넣어주면 RET가 2번실행되면서 기존에 BOF통해 덮은 RET + "4바이트"의 4바이트 지점으로 EIP가 이동된다. 그럼 환경변수를 통해 쉘 코드를 올려놓고 RET 뒤의 4바이트값을 쉘코드 주소로 넣어주면 된다. ret명령어 주소는 main 함수의 맨 마지막에 있는 ret명령어 주소값을 썼다. 



'Wargame > Lord Of the Bof(redhat)' 카테고리의 다른 글

LOB zombie_assassin -> succubus  (0) 2018.01.11
LOB assassin -> zombie_assassin  (0) 2018.01.11
LOB bugbear -> giant  (0) 2018.01.11
LOB darkknight -> bugbear  (0) 2018.01.10
LOB golem -> darkknight  (0) 2018.01.09
블로그 이미지

JeonYoungSin

메모 기록용 공간

,