种族条件漏洞实验室

时间:2014-03-05 06:03:54

标签: c linux security command-line race-condition

我有一个实验室,我必须使用这个SeedUbuntu虚拟机来处理竞争条件漏洞。有一个C程序,我需要利用它来创建攻击,所以我可以访问影子文件。以下是实验室与程序和PDF信息的链接:http://www.cis.syr.edu/~wedu/seed/Labs/Vulnerability/Race_Condition/ 我感到困惑的是如何处理这个问题。我可以在单独的终端中编译和运行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");
}

1 个答案:

答案 0 :(得分:0)

当我还是SU的学生时,我解决了这个问题,

两个不同的shell同时执行两个循环。 keep_run将继续运行

带有输入字符串的vulp.c程序在名为FILE的文件中传递。

keep_attack将首先创建文件,然后将其删除,然后创建一个指向我们的目标文件的符号链接。我们需要以下命令执行顺序才能使攻击成功:

  1. keep_attack&gt;&gt; touch / tmp / XYZ

  2. keep_run&gt;&gt;运行vulp并检查文件(执行访问命令)

  3. keep_ attack&gt;&gt; rm / tmp / XYZ

  4. keep_attack&gt;&gt; ln -s target_file / tmp / XYZ

  5. keep_run&gt;&gt;到达试图打开文件的命令

  6. *(确保程序具有set-uid并由root拥有 - setuid program owned by non-root user