IMyoungho 2019. 2. 26. 18:19

혹시나 이상하거나 잘못된 것이 있다면 댓글 부탁드립니다.


이번 문제를 보면 지금까지 있었던 제약들이 달라졌습니다.

여러 제약이 사라지고 주소값이 0xbf로 시작하고 그 다음이 "ff"가 아니여야하는 제약이 생겼습니다.

즉 최소한 0xbffeffff 부터 무언가 쉘코드를 넣어야한다는 것을 알 수 있었다.



하지만 스택이란 무엇인지 잘 고민해보면  이 문제는 굉장히 쉽게 풀 수 있다.

스택은 커질 수록 낮은 주소를 사용해야한다는 점, 즉 스택이 거꾸로 자란다는 성질을 이용하면된다.

0xbffeffff 영역에서부터 코드가 실행되게 하려면 nop sled를 사용하면 되고

그 nop의 양을 크게 키우면 이 문제는 간단하게 풀 수 있게 된다.

0xbffeffff에서부터 0xbfffffff까지의 차이는 0x10000이므로

65536개의 크기만큼 nop을 넣어주도록 하겠다.



아주 손쉽게 쉘을 따내는 모습을 볼 수 있었다.




반응형