为什么cd不能在我的反壳上工作?

2024-04-19 07:57:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python2制作一个反向shell。但是,我无法使cd(change directory)工作。在

以下是server的代码:

#!/usr/bin/python
import socket

host = socket.gethostname()
port = 1337
s = socket.socket()

s.bind((host, port))
s.listen(1)
while True:
    c, addr = s.accept()
    print "Accepted connection from", addr
    while True:
        cmd = raw_input(">>> ")
        c.send(cmd)
        print c.recv(1024)

s.close()

这是我的client代码:

^{pr2}$

我做错什么了?为什么更改目录不起作用?在

编辑:命令行不返回新的>>>提示符。在


Tags: 代码cmdtruehostserverportcdsocket
1条回答
网友
1楼 · 发布于 2024-04-19 07:57:29

这里的问题是服务器代码期望每个命令都有一个响应,但是对于cd命令,客户机没有提供任何响应。在

在服务器上有:

while True:
    cmd = raw_input(">>> ")
    c.send(cmd)              # send the command to the client
    print c.recv(1024)       # block and then read (up to) 1024 characters from the client

但是在客户机中:

^{pr2}$

一个简单的解决方案是让cdcase返回服务器丢弃的OK响应。在

注意,在Python套接字中,socket.recv()blocking operation by default。在

相关问题 更多 >