cgy12306
FTZ 11번 level11 본문
ID : level11
PW : what!@#$?
strcpy 취약점을 이용해 버퍼오버플로우를 일으켜서 쉘을 획득하는 코드인것 같다.
우선 디버깅 해보자.
strcpy함수 호출 직후의 스택구조를 그려보면 이렇게 된다. 여기서 A라는 글자를 264byte(str)+4byte(ebp)+4byte(ret) 해주면 RET까지 A가 들어갈 것이다. 이러한 점을 이용해 RET에 쉘을 획득해주는 코드의 주소를 넣어주게 되면 RET은 주소를 쉘코드가 있는 주소로 가게되어 주소를 획득하게 된다.
우선 쉘코드를 환경변수에 등록하자.
쉘 환경변수의 위치를 알려주는 c코드를 작성하자.
쉘 코드의 주소는 0xbffffea6이다. 이제 A를 268개를 넣어주고 뒤에 이 쉘 코드의 주소를 넣어보자.
쉘코드의 주소는 리틀엔디안 방식으로 넣어주어야한다.
쉘 획득에 성공했다. 비밀번호는 it is like this이다.
'Wargame > FTZ' 카테고리의 다른 글
FTZ 13번 level13 (0) | 2019.07.06 |
---|---|
FTZ 12번 level12 (0) | 2019.07.06 |
FTZ 10번 level10 (0) | 2019.07.06 |
FTZ 9번 level9 (0) | 2019.07.06 |
FTZ 8번 level8 (0) | 2019.07.06 |
Comments