c - 竞态条件漏洞实验室

标签 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");
}

最佳答案

我在SU学生时解决问题的方法,

两个不同的 shell 同时执行两个循环。 keep_run会持续运行

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

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

  1. keep_attack>>触摸/tmp/XYZ

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

  3. keep_attack >> rm/tmp/XYZ

  4. keep_attack >> ln –s target_file/tmp/XYZ

  5. keep_run >> 到达尝试打开文件的命令

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

关于c - 竞态条件漏洞实验室,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22189847/

相关文章:

linux - 如何将 telnet 控制台日志重定向到文件 Linux

http - XSRF 和双重提交 cookie JWT 替代方案——这个实现安全吗?

ios - 以编程方式检查是否在 iOS 7 上设置了密码锁

c - 变量在内存中的位置,C

c - 我如何将其变成递减循环?

linux - ksh:评估从文件中读取的一行

缺少 Linux 模块文件

android - 在Android上读取MIFARE Classic卡时如何防止 key 泄露?

c - 为什么我们使用 FILE * 而不是 FILE 进行 I/O

c - 优化c中的数学运算