[SEEDLab]竞争条件漏洞(Race Condition Vulnerability)
[SEEDLab]竞争条件漏洞(Race Condition Vulnerability)
实验PDF链接
Introduction
我们首先考虑这样的一个情景,我们有一个名为test的文件,它具有这样的权限:
-rwsr-xr-x 1 root seed 40 Jun 9 22:45 test
作为seed用户,我们无法对于此文件进行写入:

但是,假设我们的系统中存在一个程序setuid_modifi.c:
#include
#include int 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_modifi和sudo chmod 4755 setuid_modifi,此时得到的程序可以被seed用户执行,并且修改test文件之中的内容。为了避免这种情况,我们可以使用位于标准库unistd.h中的函数access()
int access(const char* pathname, int mode)
//判断路径为pathname的文件能否以mode的权限打开
//成功返回1,否则返回0
我们可以这样改写我们的程序:
//...
if(!access(
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
