Zmap+python脚本+burp实现自动化Fuzzing测试

声明
学习视频来自 B 站UP主泷羽sec,如涉及侵权马上删除文章。

笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。

✍🏻作者简介:致力于网络安全领域,目前作为一名学习者,很荣幸成为一名分享者,最终目标是成为一名开拓者,很有趣也十分有意义
🤵‍♂️ 个人主页: @One_Blanks
欢迎评论 💬点赞👍🏻 收藏 📂加关注+

目录

      • Zmap
        • 一、安装
        • 二、全网爬取
      • Python脚本筛选并构建实时代理池
      • Burp插件使用
      • 扩展
      • 总结

Zmap

一、安装
  • 更新系统和安装基础依赖

:使用包管理工具(如apt-get)更新系统并安装必要的基础依赖。例如,在Ubuntu上,您可以使用以下命令:

sudo apt-get updatesudo apt-get install -y build-essential cmake libgmp3-dev gengetopt libpcap-dev flex byacc libjson-c-dev pkg-config libunistring-dev
  • 克隆ZMap项目仓库

:从GitHub克隆ZMap项目的源代码到本地。

git clone https://github.com/zmap/zmap.gitcd zmap  
  • 编译和安装ZMap

:进入ZMap目录后,执行以下命令来编译和安装ZMap。

mkdir build
cd build
cmake ..
make
sudo make install

此外,为了验证ZMap是否安装成功,您可以运行以下命令查看ZMap的版本信息:

zmap --version
二、全网爬取
zmap -p 80,443,1080 -o raw_ips.txt

  • 先扫上几十万条

Python脚本筛选并构建实时代理池

  • 先给数据洗一下,Zmap出来的都是逗号

Python脚本

# 读取文件并替换逗号为冒号
def replace_comma_with_colon(input_file, output_file):with open(input_file, 'r') as file:lines = file.readlines()# 替换逗号为冒号modified_lines = [line.replace(',', ':').strip() for line in lines]# 写入新的文件with open(output_file, 'w') as file:for line in modified_lines:file.write(line + '\n')# 指定输入和输出文件路径
input_file = 'raw_ips.txt'
output_file = 'ip.txt'# 调用函数
replace_comma_with_colon(input_file, output_file)print(f"处理完成,结果已保存到 {output_file}")
  • 得到正常的ip就拿到验证脚本去验证
import requests# 代理IP文件路径
proxy_file_path = 'ip.txt'
# 可用代理IP输出文件路径
available_proxy_file_path = 'available_proxies.txt'# 测试URL,用于验证代理IP是否可用
test_url = 'http://www.baidu.com'# 可用代理IP列表
available_proxies = []# 读取代理IP文件
with open(proxy_file_path, 'r') as file:proxies = file.readlines()# 验证每个代理IP
for proxy in proxies:proxy = proxy.strip()  # 移除行尾的换行符if not proxy:  # 跳过空行continue# 设置代理proxies_dict = {'http': f'http://{proxy}','https': f'https://{proxy}'}try:# 发送请求,设置超时时间为5秒response = requests.get(test_url, proxies=proxies_dict, timeout=5)if response.status_code == 200:print(f'代理IP {proxy} 可用')available_proxies.append(proxy)except requests.RequestException as e:print(f'代理IP {proxy} 不可用: {e}')# 将可用代理IP写入文件
with open(available_proxy_file_path, 'w') as file:for ip in available_proxies:file.write(f'{ip}\n')print(f'\n可用代理IP已写入文件: {available_proxy_file_path}')

验证这里跑的会很慢,可以将输出的结果先全选复制拿过来

  • 接下来就是对这些输出内容进行筛选的脚本
# 读取原始文件
input_file = 'RIP.txt'
output_file = 'IPP.txt'with open(input_file, 'r', encoding='utf-8') as infile, open(output_file, 'w', encoding='utf-8') as outfile:for line in infile:if '不可用' in line:continue  # 跳过包含“不可用”的行elif '可用' in line:# 提取 IP:Port 部分parts = line.split()for part in parts:if ':' in part and part.count('.') == 3:outfile.write(part + '\n')break

然后 IPP.txt 文件中就是我们所需要使用的脚本了

Burp插件使用

github插件地址 :BurpAutoProxySwitcher

下载之后拿到py文件,如果没有下载jython包的话先下jython包,官网https://www.jython.org/download.html

  • 然后再burp中载入

之后会出现一个 Proxy Switcher 选项,那就是插件了

先输入路径(主要文件中的数据需要是每行ip:port的形式否则解释失败),然后加载,最后启用,在后面有每次请求代理 1 就是请求一次换一个,后面还有HTTP、SOCKS5 协议,后面可以将1080端口的代理服务器筛出来用这个,我这里没筛还是比较杂。

  • 来到Intruder爆破模块下,对一个外站发送请求进行测试,200都是请求成功的,50x就是服务器不让访问的(可能是地区问题),用这些筛出来的测试成功率还可以,但是可以筛的更精细,如根据站点所在地使用不同地点国家的代理服务器(这样请求质量就会更高)

像我上面这张图就是用日本的一个代理服务器请求成功的图(因为是用Zmap全网爬的嘛)

扩展

将我写的脚本进行整合,对代理池进行持久化更新,对代理池进行严选评级分类,利用字典炮轰。

总结

更高质量的代理需要我们去进行筛选和分类的,并且自动化脚本也是需要我们不断的去优化的,我上面说的各种脚本就是分开的(暂时还没有整合),那就可以整合到一起实现完全自动化,然后每个小时更新一次代理池,再对代理池持续进行筛选,并且将代理池按照不同地区进行分类,针对站点进行测试,越高质量的代理炮轰效果越好,否则会遗漏字典的爆破数据,后面就可以直接去炮轰了。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

15. Python中的os.path模块/路径操作相关

这个专栏记录我学习/科研过程中遇到的一些小问题以及解决方案,一些问题可能比较蠢请见谅。自用,仅供参考。 ------------------------------------------------------------------------------------ Python中的os.path模块详解(包括一些常…

鸿蒙实战:页面跳转传参

文章目录 1. 实战概述2. 实现步骤2.1 创建鸿蒙项目2.2 编写首页代码2.3 新建第二个页面 3. 测试效果4. 实战总结 1. 实战概述 本次实战,学习如何在HarmonyOS应用中实现页面间参数传递。首先创建项目,编写首页代码,实现按钮跳转至第二个页面并…

NLP论文速读(EMNLP 2024)|动态奖励与提示优化来帮助语言模型的进行自我对齐

论文速读|Dynamic Rewarding with Prompt Optimization Enables Tuning-free Self-Alignment of Language Models 论文信息: 简介: 本文讨论的背景是大型语言模型(LLMs)的自我对齐问题。传统的LLMs对齐方法依赖于昂贵的训练和人类偏好注释&am…

Label-studio-ml-backend 和YOLOV8 YOLO11自动化标注,目标检测,实例分割,图像分类,关键点估计,视频跟踪

这里写目录标题 1.目标检测 Detection2.实例分割 segment3.图像分类 classify4.关键点估计 Keypoint detection5.视频帧检测 video detect6.视频帧分类 video classify7.旋转目标检测 obb detect8.替换yolo11模型 给我点个赞吧,谢谢了附录coco80类名称 笔记本 华为m…

图像处理学习笔记-20241118

文章目录 霍夫变换基本原理霍夫变换的步骤使用 OpenCV 实现直线检测示例:标准霍夫变换 示例:概率霍夫变换参数解释霍夫变换检测圆 基于GAN的样本生成GAN的基本原理基于GAN的数据增广流程实现代码示例 同态滤波(Homomorphic Filtering&#xf…

视频融合×室内定位×数字孪生

随着物联网技术的迅猛发展,室内定位与视频融合技术在各行各业中得到了广泛应用。不仅能够提供精确的位置信息,还能通过实时视频监控实现全方位数据的可视化。 与此同时,数字孪生等技术的兴起为智慧城市、智慧工厂等应用提供了强大支持&#…

当科技照进现实 机器人带着机器狗乘空轨

湖北日报讯(记者魏铼、通讯员张璨龙)11月14日,武汉东湖高新区空轨高新大道站,在光谷装上“智慧大脑”的人形机器人,乘空轨,看AI展,与小朋友在生态大走廊斗舞。 京天博特:光谷“智慧大…

freertos任务调度学习

首先创建任务,创建好任务后,开启任务调度器,任务才能执行 1.开启任务调度器 2.启动第一个任务 3.任务切换

蓝桥杯每日真题 - 第16天

题目:(卡牌) 题目描述(13届 C&C B组C题) 解题思路: 题目分析: 有 n 种卡牌,每种卡牌的现有数量为 a[i],所需的最大数量为 b[i],还有 m 张空白卡牌。 每…

MySQL系列之数据授权(privilege)

导览 前言Q:如何对MySQL数据库进行授权管理一、MySQL的“特权”1. 权限级别2. 权限清单 二、授权操作1. 查看权限2. 分配权限3. 回收权限 结语精彩回放 前言 看过博主上一篇的盆友,可以Get到一个知识点:数据授权(eg:g…

C++为函数提供的型特性——缺省参数与函数重载

目录 一、缺省参数 二、函数重载 一、缺省参数 C为函数提供了一项新的特性——缺省参数。缺省参数指的是当前函数调用中省略了实参自动使用的一个值。这极大地提高了函数的灵活性 缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值 。在调⽤该函数时,如果没有…

android 使用MediaPlayer实现音乐播放--权限请求

在Android应用中,获取本地音乐文件的权限是实现音乐扫描功能的关键步骤之一。随着Android版本的不断更新,从Android 6.0(API级别23)开始,应用需要动态请求权限,而到了android 13以上需要的权限又做了进一步…

go-zero(一) 介绍和使用

go-zero 介绍和使用 一、什么是 go-zero? go-zero 是一个基于 Go 语言的微服务框架,提供了高效、简单并易于扩展的 API 设计和开发模式。它主要目的是为开发者提供一种简单的方式来构建和管理云原生应用。 1.go-zero 的核心特性 高性能: g…

Orcad 输出有链接属性的PDF

安装adobe pdf安装Ghostscript修改C:\Cadence\SPB_16.6\tools\capture\tclscripts\capUtils\capPdfUtil.tcl ​ 设置默认打印机为 Adobe PDF ​ 将Ghostscript的路径修改正确 打开cadence Orcad ,accessories->candece Tcl/Tk Utilities-> Utilities->PD…

.NET6 WebApi第1讲:VSCode开发.NET项目、区别.NET5框架【两个框架启动流程详解】

一、使用VSCode开发.NET项目 1、创建文件夹,使用VSCode打开 2、安装扩展工具 1>C# 2>安装NuGet包管理工具,外部dll包依靠它来加载 法1》:NuGet Gallery,注意要启动科学的工具 法2》NuGet Package Manager GUl&#xff0c…

#define定义宏(3)

大家好,今天来给大家介绍一下宏实现的原理以及缺点,还有宏和函数的一些区别(下一期给大家详细介绍宏和函数的区别),那么话不多说,我们现在开始。 1.宏和参数不是计算之后传进去,而是替换进去的…

AJAX笔记 (速通精华版)

AJAX(Asynchronous Javascript And Xml) 此笔记来自于动力节点最美老杜 传统请求及缺点 传统的请求都有哪些? 直接在浏览器地址栏上输入URL。点击超链接提交 form 表单使用 JS 代码发送请求 window.open(url)document.location.href urlwi…

3D Gaussian Splatting 代码层理解之Part2

现在让我们来谈谈高斯分布。我们已经在Part1介绍了如何根据相机的位置获取 3D 点并将其转换为 2D。在本文中,我们将继续处理高斯泼溅的高斯部分,这里用到的是代码库 GitHub 中part2。 我们在这里要做的一个小改动是,我们将使用透视投影,它利用与上一篇文章中所示的内参矩阵…

【YOLOv8】安卓端部署-2-项目实战

文章目录 1 准备Android项目文件1.1 解压文件1.2 放置ncnn模型文件1.3 放置ncnn和opencv的android文件1.4 修改CMakeLists.txt文件 2 手机连接电脑并编译软件2.1 编译软件2.2 更新配置及布局2.3 编译2.4 连接手机 3 自己数据集训练模型的部署4 参考 1 准备Android项目文件 1.1…

进程其他知识点

/* #include <stdlib.h> void exit(int status); #include <unistd.h> void _exit(int status); status 参数&#xff1a;是进程退出时的一个状态信息。父进程回收子进程资源的时候可以获取到。 */ #include <stdio.h> #include <stdlib.h> #include &…