이번 문제는 BOF문제인거같으면서도 아닌것같다 분기문제이다
쉘코드나 다른 기법을 사용할 필요 없이 저 check부분에 0xdeadbeef가 들어가면 권한이 상승되고 쉘을 얻을 수 있다
간단하게 스택의 구조를 보고 값을 넣으면 쉽게 끝날 것 같다
스택의 구조를 살펴보자
먼저 스택프레임에서 0x38, 즉 56이 할당되었고 fget함수는 ebp-56부분의주소를 eax에 넣고 실행된다 buf는 ebp-56부터 20바이트만큼이다
그리고 ebp-16에서 0xdeadbeef를 비교하는데 이곳이 check부분이다 그러면 buf와 check사이에 더미가 있다는 것이다
56부터 20만큼, 36에서 16사이, 즉 더미는 20바이트를 차지한다
스택을 그려보면 다음과 같다
이렇게 된다
그럼 이제 값을 집어넣기만 하면 되겠다
이로써 level14도 클리어했다
Phantom@TeamH4C