0

我在缓冲区溢出中创建一个简单的 CTF 下面是示例代码:

#include <stdio.h>

void secretFunction()
{
    printf("this is your flag!\n");
}

void echo()
{
    char buffer[20];

    printf("Enter some text:\n");
    printf("%s", buffer);
    printf("You entered: %s\n", buffer);    
}

int main()
{
    echo();

    return 0;
}

编译:gcc vuln.c -o vuln -fno-stack-protector -m32

但是,如果我们strings vuln直接显示实际标志,那么secretFunction当用户在二进制文件中输入字符串时,my 是不可见的。

4

1 回答 1

0

通常,解决方案是分发在远程服务器上运行的二进制文件,并用 CTF 竞争对手副本上的占位符替换实际密钥。

一个简单的方法是使用环境变量,因为 CTF

于 2019-10-06T08:59:27.943 回答