如何在Python反向shell中恢复输出
我正在用Python制作一个反向shell,这里是客户端和服务器代码的一小部分 服务器端:如何在Python反向shell中恢复输出,python,Python,我正在用Python制作一个反向shell,这里是客户端和服务器代码的一小部分 服务器端: while True: cmd = input() if len(cmd) > 0: connection.send(str.encode(cmd)) response = connection.recv(1024).decode('utf-8') print(response) data = str(s.recv(1024), 'u
while True:
cmd = input()
if len(cmd) > 0:
connection.send(str.encode(cmd))
response = connection.recv(1024).decode('utf-8')
print(response)
data = str(s.recv(1024), 'utf-8')
if data == 'dir':
output = subprocess.getoutput(data)
s.send(str.encode(output))
客户端:
while True:
cmd = input()
if len(cmd) > 0:
connection.send(str.encode(cmd))
response = connection.recv(1024).decode('utf-8')
print(response)
data = str(s.recv(1024), 'utf-8')
if data == 'dir':
output = subprocess.getoutput(data)
s.send(str.encode(output))
假设我在shell中键入了dir命令,由于此命令的输出可能很长,因此有一种方法可以在我再次按enter键时使输出继续进行?来自:
一次接收的最大数据量由bufsize
指定
仅为了查看代码,我猜您应该一直调用connection.recv(1024)
,直到从套接字读取所有可用数据。也许像这样的办法行得通
while True:
cmd = input()
if len(cmd) > 0:
connection.send(str.encode(cmd))
response = ""
message = connection.recv(1024).decode('utf-8')
while message:
response += message
message = connection.recv(1024).decode('utf-8')
print(response)
不过,这只是一个猜测。来自:
一次接收的最大数据量由bufsize
指定
仅为了查看代码,我猜您应该一直调用connection.recv(1024)
,直到从套接字读取所有可用数据。也许像这样的办法行得通
while True:
cmd = input()
if len(cmd) > 0:
connection.send(str.encode(cmd))
response = ""
message = connection.recv(1024).decode('utf-8')
while message:
response += message
message = connection.recv(1024).decode('utf-8')
print(response)
不过只是一个猜测。我想在没有更多数据之前调用该方法是正确的。while语句使这段代码永远运行,但我将尝试搜索是否有合适的方法通过循环接收数据。我想在没有更多数据之前调用该方法是正确的。while语句使这段代码永远运行,但我将尝试搜索是否有合适的方法通过循环接收数据。