小编X-U*_*ser的帖子

如何将'ls'命令转换为'cat'命令?

我试图解决这个问题,我只允许运行ls命令,我的目标是读取标志.有一个易受攻击的C代码,它有setuid.

    -rwsr-sr-x 1 lameprogrammer lameprogrammer 8579 Sep 15 07:21 vul_c
    -rw-r----- 1 lameprogrammer lameprogrammer  154 Sep 15 07:40 flag
Run Code Online (Sandbox Code Playgroud)

我是用户攻击者,我必须阅读此标志文件.给定的C代码是

    #include <stdlib.h>
    #include <stdio.h>

    #define FILENAME "/var/challenges/attacker/challenge1/flag"

    int main(void)
    {
        int vert;
        vert = system("ls " FILENAME);
        if(!vert)
            puts("Flag is at " FILENAME " :P ");
        else
            puts("Sorry! no file is there");
    }
Run Code Online (Sandbox Code Playgroud)

我试图将ls转换为cat,这样如果运行,那么它将读取标志文件.为此,我将所有bin文件夹复制到我的本地空间,然后用cat替换ls然后导出新的PATH.从技术上讲,它应该替换,我的ls命令应该像猫一样工作,但它不起作用.以下是我的命令:

   cp -r /bin /home/attacker
   cd /home/attacker/bin …
Run Code Online (Sandbox Code Playgroud)

c linux bash shell

6
推荐指数
1
解决办法
2043
查看次数

标签 统计

bash ×1

c ×1

linux ×1

shell ×1