问题描述
如果我们得到这个命令行:
python file.py --gsgds dsgsdg --dg dgdg --dg 'gdgd'
现在,假设我们想中断这个命令并在它运行时运行另一个命令,就像这样:
python file.py --gsgds dsgsdg --dg dgdg --dg '`sleep 10`'
当我尝试在两个引号之间添加 sleep 10
时,它不起作用。请记住,我必须打破两个引号之间的命令。 ('[在此处注入]')
有什么想法吗?
解决方法
让我们举个例子,我们有 bash
shell 在终端中运行。在 bash shell 中有几个具有特殊含义的字符。您可以在 bash 手册中阅读更多内容。
让我们以 ;
中的 bash
为例。
您可以使用 sleep 10
在 Python 命令后轻松运行 ;
。这是一种方法:
python file.py --gsgds dsgsdg --dg dgdg --dg ''; sleep 1; echo 'Done'
在第三个参数中传递 '; sleep 1; echo 'Done
的地方。
某些 shell 对可以/不能使用的字符添加了限制,因此您可以自行尝试使用哪些字符。