0

我想知道是否可以在不修改代码的情况下调用 ret 。感谢您的关注!

    #undef _FORTIFY_SOURCE
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>

    int ret() {
        return system("/bin/bash");
    }

    void overflow() {
        char buf[128];
        read(STDIN_FILENO, buf, 256);
    }

    void user() {
        gid_t gid = getegid();
        setresgid(gid, gid, gid);
    }

    int main(int argc, char** argv) {
            user();
            overflow();
    }
4

1 回答 1

0

你的老师要你在这里做的是缓冲区溢出。

该程序将从 STDIN 读取,因此管道输入超过 256 个字符,我认为您将完成您的任务。

于 2013-05-03T23:46:36.423 回答