C:IFS系统()漏洞
出于教育原因,我必须利用C代码
程序首先设置egid,然后设置system("/usr/bin/...");
的漏洞system("/usr/bin/...");
命令。
所以我在我的主目录中创建了一个’usr’,并将路径设置为Home PATH=$HOME:$PATH
我想将bash中的IFS变量更改为/: export IFS='/'
不幸的是,当我打电话给C-Programm时:我的漏洞利用不起作用
有人能告诉我出了什么问题吗?
我想我们正在同一所大学学习,因为我目前面临着同样的问题。 我不想给你整个解决方案,因为那太容易=)
您的IFS变量不会被忽略,但它不会像您想象的那样工作。 当你调用C-Programm时,shell中有一个额外的输出,它指的是lesspipe。 通过此链接 和此德语链接中的信息,您可以解决挑战1;)
添加IFS作为程序调用system()
。 系统使用/usr/bin/sh -c
执行代码。 所以你可以做类似于你在shell提示符中的内容。
system("export IFS='/'; /usr/bin/cmd");
请注意,一旦子进程终止,IFS集将不再在父进程中可用。