是否可以在execve

时间:2015-05-12 09:50:40

标签: c exec

我的程序使用excve运行ls,第二个参数由用户填充:

  char * envp[1] = { 0 };

  execve(my_command, user_input, envp);

用户是否可以在user_input参数中注入命令,即使它被视为参数?

我试过运行这个但是$(之前解释为:

./my_program.out "$(cat /etc/passwd)"

有没有办法逃脱$但仍然注入命令?

1 个答案:

答案 0 :(得分:0)

除非ls内有漏洞,否则他们无法注入命令。

请参阅http://linux.die.net/man/2/execve

  

参数向量和环境可以被被调用程序的main函数访问,当它被定义为:int main(int argc, char *argv[], char *envp[])