Theme Layout

Boxed or Wide or Framed

Wide

Theme Translation

Display Featured Slider

Featured Slider Styles

Display Grid Slider

yes

Grid Slider Styles

Display Trending Posts

Display Author Bio

Display Instagram Footer

off

Dark or Light Style

Light
Powered by Blogger.

Thursday, January 26, 2017

[Hacker School] FTZ Level16 ( Ver. Kor )





Level16

level16의 계정으로 접속하여 hint를 확인해보면 다음과 같습니다.


코드상으로 보았을 때, 메인에 있는 call 함수를 이용해 shell()함수를 불러 온다면, level17권한의 shell을 실행시킬 수 있을 것 같습니다. 메모리 구조를 알아보기 위해 먼저 tmp폴더에 코드를 복사해온 후 코드 한 줄을 추가하여 실행시켜 보았습니다.


이번에는 gdb를 이용하여 attackme를 분석해 보았습니다.


위 두 분석을 토대로 메모리 공간을 도식화 해보면 다음과 같습니다.


call 함수를 통해 shell() 함수를 실행시켜야 하므로, shell()함수의 주소가 필요합니다. gdb
를 이용해 shell()함수의 주소를 알아옵니다.


shell을 disassemble 하면 shell 함수의 시작 주소를 알 수 있습니다. 40byte만큼 임의의 문자열을 채워주고, shell()함수의 주소를 넣어주면, call함수가 shell()함수를 실행시킬 것입니다.


level17의 shell이 실행됨을 알 수 있습니다.

QuickEdit
Unknown
0 Comments
Share This Post :

You Might Also Like

No comments:

Post a Comment

Follow @SunriseSunsetBlog