Xem trên IDA thì thấy ngay luôn lỗi format string
read(0, &buf, 0x18u);
printf(&buf);
if ( val == 24 )
system("/bin/cat ./flag");
Phía trên có leak địa chỉ của biến &val cho mình
printf(">Input interesting text here< %p\n", &val);
có địa chỉ rồi thì ghi vào đó giá trị mới sao cho nó == 24 là sẽ lấy được flag.