我在名为vulnerability.c的文件中包含以下代码:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
gid_t egid = getegid();
setregid(egid, egid);
system("echo testing");
return 0;
}
以下是易受攻击的可执行文件的权限:
-rwxr-sr-x 1 test cool 8192 2016年9月28日易受伤害
在我的主目录中,我创建了一个名为&#34; echotest&#34;的新目录。并放入一个echo.c文件并编译它。 echo.c文件只打印出&#34; Exploited !!&#34;。我还将我的PATH环境变量更改为包含$ HOME / echotest。
现在,当我遇到弱势时,它应该打印出来#34;被剥削了!&#34;但事实并非如此。我在这里错过了什么?
我用&#34; cat&#34;进行了类似的测试。它有效,但回声没有运气。 任何帮助将不胜感激。
由于
答案 0 :(得分:2)
问题是echo
通常是内置的shell。如果您希望它可被利用,您可以将易受攻击的代码更改为:
int main() {
gid_t egid = getegid();
setregid(egid, egid);
system("env echo testing");
return 0;
}