C 竞争条件漏洞实验室

C 竞争条件漏洞实验室,c,linux,security,command-line,race-condition,C,Linux,Security,Command Line,Race Condition,我有一个实验室,在那里我必须使用这个SeedUbuntu虚拟机来解决竞争条件漏洞。有一个C程序,我需要利用它来创建攻击,这样我就可以访问影子文件。以下是指向实验室的链接,其中包含程序和PDF信息: 我感到困惑的是,究竟该如何处理这个问题。我可以在不同的终端上编译和运行vulp.c程序和shell脚本,但是接下来我该怎么做呢?我需要执行什么样的代码或命令?我很困惑,我真的很感激在解决这项任务时能得到任何帮助!谢谢大家! /* vulp.c */ #include <stdio.h>

我有一个实验室,在那里我必须使用这个SeedUbuntu虚拟机来解决竞争条件漏洞。有一个C程序,我需要利用它来创建攻击,这样我就可以访问影子文件。以下是指向实验室的链接,其中包含程序和PDF信息: 我感到困惑的是,究竟该如何处理这个问题。我可以在不同的终端上编译和运行vulp.c程序和shell脚本,但是接下来我该怎么做呢?我需要执行什么样的代码或命令?我很困惑,我真的很感激在解决这项任务时能得到任何帮助!谢谢大家!

/*  vulp.c  */

#include <stdio.h>
#include<unistd.h>

#define DELAY 10000

int main()
{
   char * fn = "/tmp/XYZ";
   char buffer[60];
   FILE *fp;
   long int  i;

   /* get user input */
   scanf("%50s", buffer );

   if(!access(fn, W_OK)){
       /* simulating delay */
        for (i=0; i < DELAY; i++){
           int a = i^2; 
        }

        fp = fopen(fn, "a+");
        fwrite("\n", sizeof(char), 1, fp);
        fwrite(buffer, sizeof(char), strlen(buffer), fp);
        fclose(fp);
   }
   else printf("No permission \n");
}
/*vulp.c*/
#包括
#包括
#定义延迟10000
int main()
{
char*fn=“/tmp/XYZ”;
字符缓冲区[60];
文件*fp;
long int i;
/*获取用户输入*/
扫描频率(“%50s”,缓冲区);
如果(!访问(fn,W_OK)){
/*模拟延迟*/
对于(i=0;i
我在苏大读书时的解决方法

两个不同的shell同时执行两个循环。保持运行将持续运行

在名为file的文件中传递输入字符串的vulp.c程序

keep_攻击将首先创建文件,然后将其删除,然后创建一个指向目标文件的符号链接,该文件属于根目录。为了使我们的攻击成功,我们需要以下命令的执行顺序:

  • 保持攻击>>触摸/tmp/XYZ

  • 保持运行>>运行vulp并检查文件(执行access命令)

  • 保持攻击>>rm/tmp/XYZ

  • 保持\u攻击>>ln–s目标\u文件/tmp/XYZ

  • 保持运行>>到达尝试打开文件的命令


  • *(确保该程序具有设置的uid并且由root用户拥有--)

    是否需要修改此vulp程序?我需要在此程序中创建符号链接?我是C和Linux新手,所以这对我来说非常陌生!或者在运行vulp.c后,我是否在终端中创建链接?