Buffer Overflow - Easy★★★★★✩
Basic of System Hacking
link
id: bof passwd: bof
use /tmp if you need.
#include <stdio.h>
#include <stdlib.h>
char answer[0x100];
int main()
{
int change_this = 0x12345678;
char buf[0x100];
printf("before change: %08x\n", change_this);
read(0, buf, 0x200);
if(change_this == 0x41424344)
{
FILE *fp = fopen("/home/bof-easy/answer","r");
fread(answer, 1, 100, fp);
puts("Great! here is answer");
puts(answer);
}
printf("after change: %08x\n", change_this);
exit(0);
}
Buffer overflow문제이다. buf
는 0x100만큼 이지만 read
로 0x200까지 받으므로 buf를 넘어서서 change_this
의 영역까지 건드릴 수 있다.
260글자 아무거나 입력해주고 change_this
의 영역에 들어갈 값을 입력하면 된다.