gpt4 book ai didi

c - execve 的 arg 参数中是否可以进行命令注入(inject)

转载 作者:行者123 更新时间:2023-11-30 17:14:44 30 4
gpt4 key购买 nike

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

  char * envp[1] = { 0 };

execve(my_command, user_input, envp);

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

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

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

有没有办法转义 $ 但仍然注入(inject)命令?

最佳答案

不,除非 ls 内部存在漏洞,否则他们无法注入(inject)命令。

参见http://linux.die.net/man/2/execve

The argument vector and environment can be accessed by the called program's main function, when it is defined as: int main(int argc, char *argv[], char *envp[])

关于c - execve 的 arg 参数中是否可以进行命令注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30187288/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com