execve的arg参数中是否可以进行命令注入

execve的arg参数中是否可以进行命令注入,c,exec,C,Exec,我的程序使用excve运行ls,第二个参数由用户填写: char * envp[1] = { 0 }; execve(my_command, user_input, envp); 用户是否可以在用户输入参数中插入命令,即使它被视为参数 我尝试运行此命令,但$(之前已解释为: ./my_program.out "$(cat /etc/passwd)" 有没有办法逃逸$但仍然插入命令?没有,除非ls中存在漏洞,否则无法插入命令 看 当被调用程序的main函数定义为:int main(i

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

  char * envp[1] = { 0 };

  execve(my_command, user_input, envp);
用户是否可以在用户输入参数中插入命令,即使它被视为参数

我尝试运行此命令,但$(之前已解释为:

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

有没有办法逃逸
$
但仍然插入命令?

没有,除非ls中存在漏洞,否则无法插入命令

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