0
我有一段C代碼,我需要知道TOCTTOU漏洞的位置以及原因。有人知道它在哪裏,我該如何糾正它?TOCTTOU代碼漏洞
int process(char *filename)
{
struct stat aux;
char buffer[1024];
printf("Input to be appended: ");
fgets(buffer, sizeof(buffer), stdin);
if((lstat(filename, &aux) == 0) && !S_ISLNK(aux.st_mode))
{
printf("[+] Opening\n", filename);
int fd = open(filename, O_RDWR | O_APPEND), nb;
nb = write(fd, buffer, strlen(buffer));
printf("[+] Done!\n");
return 0;
}else
printf("[-] ERROR\n", filename);
return 1;
}
int main(int argc, char * argv[])
{
if(argc != 2){
fprintf(stderr, "usage: %s filename\n", argv[0]);
exit(1);
}
return process(argv[1]);
}
謝謝!!
你能給我一個代碼示例嗎?謝謝! :) – user7346822
當然你是在開玩笑,先生。 user7346822 ;-) –
nope,如果我看到你的意思,我會更好地理解它。謝謝 – user7346822