コードを変更せずに 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();
}