FTZ-level17
오랫만의 포스팅입니다. 몇일동안 학교 시스템해킹 과제를 하느랴 FTZ를 못풀었었습니다. FTZ를 끝낸후 과제푼 것을 포스팅 해보겠습니다.
#include <stdio.h>
void printit() {
printf("Hello there!\n");
}
main()
{ int crap;
void (*call)()=printit;
char buf[20];
fgets(buf,48,stdin);
setreuid(3098,3098);
call();
}
이런 코드 입니다. 공격 방법은 간단합니다. 저 printit함수의 시작주소를 저장하는 call변수에 쉘코드가 입력된 환경변수의 주소를 써주면 공격이 성공하게 됩니다.
dummy 부분을 찾아내는 건 저번 포스팅 level16에서 찾은 방법과 동일합니다. 너무 쉽기 때문에 여기까지 포스팅 하겠습니다. 아마 지금까지 문제 푸신분들은 그림만 봐도 아실것입니다.
0 개의 댓글