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 Level19 ( Ver. Kor )





Level19

level19의 계정으로 접속한 후, hint를 확인해보면 다음과 같습니다.


입력받는 문자열의 길이를 체크하지 않는 gets함수이기 때문에, BOF취약점이 존재합니다. 코드 분석을위해 gdb를 이용하였습니다.


메모리 공간으로 할당된 크기는 40byte입니다. 만약 이 정보들을 가지고 BOF공격을 시도하게 되면, level20의 권한이 아닌 level19의 권한으로 shell이 실행됩니다.
level20권한의 shell을 실행시키기 위해 setreuid(3100,3100)과 system("/bin/sh")를 실행시킬 것입니다.이를 위해 Chaining RTL을 이용하였습니다. Chaining RTL을 위해 스택을 도식화해보면 다음과 같습니다.


먼저 setreuid() 와  system()의 주소를 찾았습니다.


pop -pop - ret 을 찾기 위해 다음과 같이 objdump를 이용하였습니다.


마지막으로 /bin/sh의 주소를 이용하기 위해 level11에서 사용했던 코드를 이용했습니다.


위 코드를 컴파일한 후, 실행하면 다음과 같이 /bin/sh가 위치한 주소를 알 수 있습니다.


필요한 값들을 모두 알았으니, 위에 도식화한 그림순으로 값을 대입하여 payload를 구성하여 입력하였습니다.



QuickEdit
Unknown
0 Comments
Share This Post :

You Might Also Like

No comments:

Post a Comment

Follow @SunriseSunsetBlog