c語言實現linux下高危函式system (簡易V1.0版本)
阿新 • • 發佈:2018-12-15
system這個函式真的是要慎用,一不小心就會留下漏洞。
下面是用c語言簡易的實現了一下system函式
#include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<errno.h> #include<sys/types.h> int main(int argc, char *argv[]) { pid_t sonpid; printf("please enter the command: "); char cmdstring[32]; gets(cmdstring);//但是編譯器提示這裡用gets並不安全 sonpid = fork(); if(sonpid < 0) { perror("fork!"); } else if(sonpid == 0) { char * command[] = {"/bin/sh","-c",cmdstring,NULL}; execvp(command[0],command); } else { waitpid(sonpid,NULL,0); _exit(0); } return 0; }
程式碼執行截圖如下: