[SEEDLab]竞争条件漏洞(Race Condition Vulnerability)

[SEEDLab]竞争条件漏洞(Race Condition Vulnerability)

实验PDF链接

Introduction

我们首先考虑这样的一个情景,我们有一个名为test的文件,它具有这样的权限:

-rwsr-xr-x 1 root seed   40 Jun  9 22:45 test

作为seed用户,我们无法对于此文件进行写入:
Result
但是,假设我们的系统中存在一个程序setuid_modifi.c

#include
#includeint main(){char * fn = "test";char buffer[60];FILE *fp;scanf("%50s", buffer );if(fp = fopen(fn, "a+") == NULL){printf("Error!");}else{fwrite("\n", sizeof(char), 1, fp);fwrite(buffer, sizeof(char), strlen(buffer), fp);fclose(fp);}
}

由它编译生成的可执行文件,然后执行sudo chown root setuid_modifisudo chmod 4755 setuid_modifi,此时得到的程序可以被seed用户执行,并且修改test文件之中的内容。为了避免这种情况,我们可以使用位于标准库unistd.h中的函数access()

int access(const char* pathname, int mode)
//判断路径为pathname的文件能否以mode的权限打开
//成功返回1,否则返回0

我们可以这样改写我们的程序:

//...
if(!access(


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部