安全地将python命令回显到文件中,而不执行它们
所以我有一个python文件,里面有很多行,我想读入python,然后通过套接字回显到另一个文件中 假设我有foo.py文件安全地将python命令回显到文件中,而不执行它们,python,Python,所以我有一个python文件,里面有很多行,我想读入python,然后通过套接字回显到另一个文件中 假设我有foo.py文件 import os os.popen('some command blah') print("some other commands, doesn't matter") 然后我尝试打开文件,读取所有行,并将每一行回送到一个新文件中 类似于 scriptCode = open(os.path.realpath(__file__)).readlines() for line
import os
os.popen('some command blah')
print("some other commands, doesn't matter")
然后我尝试打开文件,读取所有行,并将每一行回送到一个新文件中
类似于
scriptCode = open(os.path.realpath(__file__)).readlines()
for line in scriptCode:
connection.send("echo " + line + " >> newfile.py")
print("file transfered!")
但是,当我这样做时,命令在远程shell中执行
因此,我的问题是:
如何在不执行任何关键字的情况下安全地将文本回显到文件中
我试过什么
在行周围添加单引号
在行的周围添加单引号,然后在行的单引号上添加反斜杠
我考虑过但尚未尝试过的事情:
Base64在远程机器上对该行进行编码,然后对其进行解码我不想这样做,因为没有担保它将有此命令
我知道这很奇怪。我为什么要这样做
我正在构建一个pentesting反向shell处理程序。
将:
返回字符串s的shell转义版本。返回的值是一个字符串,在不能使用列表的情况下,该字符串可以安全地用作shell命令行中的一个标记
比自己引用字符串要安全得多。请注意,它与:“+line.replace”、“\'\'+”完全相同,并且shlex.quote仅在Python 3.3中添加。@alex taylor的工作方式很有魅力。虽然我是从管道里买的谢谢