带你玩转系列之Burpsuite

简介: Burpsuite

正所谓想要渗透玩的好,bp少不了

Burp Suite是无人不晓的web渗透测试必备的工具。从应用程序表面的映射和内部分析,到探测和利用漏洞等过程,所有插件支持整体测试程序而无缝地在一起工作。

对web服务的渗透测试过程中,少不了抓包,改包来进行测试网站中的各种应用以及功能,从而找到其中的漏洞,Burpsuite就是在众多抓包工具中比较脱颖而出的一款软件,以下给大家介绍Burpsuite中几个常用的模块。

00x00 常用的模块介绍

Target

目标模块用于设置扫描域、生成站点地图、生成安全分析

Proxy

代理模块主要用于拦截浏览器的http会话内容

Spider

爬虫模块用于自动爬取网站的每个页面内容,并生成完整的站点地图

scanner

扫描模块用于自动检测漏洞,分为主动扫描和被动扫描

Intruder

入侵模块根据检测到的可能存在的漏洞,调用攻击载荷,对目标进行攻击。入侵模块的原理是根据访问链接中存在的参数或者变量,调用本地词典、攻击载荷对目标进行攻击

Repeater

重放模块用于实现请求重放,通过修改参数进行手工请求回应的调试

Sequencer

序列器模块用于检测参数的随机性,例如密码或者令牌是否可预测,以此判断关键数据是否可被伪造

Decoder

解码器模块用于实现对URL、HTML、Base64、ASCII、二\八\十六进制、哈希等编码转换,并支持多次编码解码操作

00x01 Burp Suite使用

1. 安装与帮助

运行时依赖JRE,需要安装Java环境才可以运行。需要安装Java环境,大家可以百度搜索JDK,下载安装包然后安装即可。安装完成之后,我们可以通过命令java -version来查看

640.png

下载好的Burp Suite无需安装,直接运行BurpLoader.jar即可。

640.png

正常打开之后,我们就可以看到Burp Suite的主界面了,如下图所示。

640.png

2. 代理功能

代理工具用来拦截所有通过代理的网络流量,如客户端的请求数据,服务器端的返回信息等。Burp Suite主要拦截HTTP和HTTPS流量,通过拦截再以中间人的方式对拦截到的信息做各种处理来达到目的。在日常工作中,我们最常用的Web客户端就是Web浏览器,我们可以通过设置代理功能来拦截Web浏览器的流量,Burp Suite默认本地代理端口为8080。

640.jpg

接下来我们设置Web浏览器代理,我们在这里以Firefox浏览器为例,同一款浏览器的不同版本设置方法基本一致。

 640.png

想要抓取Https就需要导入burp suite的伪造证书,先在已经设置代理的浏览器中,这里是用火狐浏览器访问,http:127.0.0.1:8080  将CA证书下载下来。

 640.png

在浏览器中导入ca证书

640.png

代理功能设置好之后,我们通过Burp Suite拦截DVWA靶机,我们可以看到浏览器一直处于加载状态,这就说明会话被拦截成功了

接下来我们在Burp Suite里面查看Proxy的intercept,如下图所示:

640.png

Proxy为开展渗透测试的核心功能

640.png

Forward:将拦截的数据包发送到服务器

Drop:丢弃当前的数据包

Interception is on  开启拦截

Interception is off  关闭拦截

Action:可以将数据包发送到Spider、Scanner等模块

3. 目标功能

目标模块用于设置扫描域(target scope)、生成站点地图(sitemap)、生成安全分析。该模块最主要功能就是显示信息,它会默认记录浏览器访问的所有页面,可以看到爬虫爬取到的页面以及所有页面的请求和响应信息。

640.jpg

由于Burp Suite默认开启了被动爬虫功能,当我们在访问Web界面的时候,会自动爬行得到该站点地图,所以我们可以直接在Targer里面的Site map里面找到目标站点,鼠标右键,在下拉菜单中选择“Add to scope”,把站点添加进scope

640.jpg

4. 爬虫功能

爬虫模块用于自动爬取网站的每个页面内容,并生成完整的站点地图。在这里我们以OWASP的DVWA靶机为例,给大家演示一下如果通过爬虫主动爬取站点地图

当我们拦截到HTTP的数据包之后,选择"Action"按钮,选择"Send to Spider"发送给爬虫模块,当然还可以在HTTPhistory界面,Site map界面找到对应站点链接发送给爬虫模块

 640.jpg

接下来我们在Spider模块的Control界面就可以看到爬虫状态,如下图所示: 在Options界面我们可以设置爬虫线程,爬行深度,表单提交,被动爬虫功能等规则,大家可以根据自己的需求来自行设置

640.png

扫描出的结果我们可以在刚才的target里面看见

5、爆破模块:

Intruder模块通常用来进行暴力破解,以靶机DVWA为例子在,抓取了登录框的包后,使用action进行发送给intruder模块进行配置

 640.jpg

在设置需要爆破的变量,这里设置的password,然后在Payloads里面设置需要的字典或者其他的payload

 640.png

在load处使用自己的字典,也可以在options里面设置每隔多少时间的发多少个包的时间间隔

 640.jpg

intruder - start attack开始攻击

 640.jpg

通过状态码、返回长度、以及返回包综合筛选出爆破成功的包,可以确定这里password为正确的密码

6、编码的加解密:

Decoder模块中可以进行多种编码的加解密,其中包含了有Plain、URL、HTML、Base64、ASCII hex、Hex、Octal、Binary、Gzip,可以在渗透过程中对抓取的包进行更加方便的分析

 640.png

7、Repeater重发包模块

在渗透测试过程中,需要经常的修改数据包来绕过模板网站的逻辑,从而达到分析发现漏洞,就需要对某个包重复的发送已经抓取,Repeater模块可以直接抓取一个数据包后,可进行多次的修改跟发送,节省测试人员的时间,大幅度的提升效率

 640.jpg




相关文章
|
12月前
|
人工智能 自然语言处理 监控
Playwright MCP浏览器自动化全攻略
Playwright MCP让AI通过自然语言操控浏览器,无需编程即可实现网页自动化。支持智能元素识别、多浏览器操作与动态交互,广泛应用于搜索、数据抓取、自动发布等场景,大幅提升效率,降低技术门槛,是浏览器自动化的新范式。
|
缓存 Ubuntu Linux
在Linux中,如何进行系统更新和升级?
在Linux中,如何进行系统更新和升级?
|
小程序 JavaScript 前端开发
微信小程序(十七)小程序监听返回键跳转事件(安卓返回也适用)
onUnload:function(){ wx.redirectTo({ url: '../index/index' }) wx.navigateTo({ url: '../index/index' }) wx.switchTab({ url: '../../member/member' }) }
2105 0
|
算法 Linux 编译器
⭐⭐⭐⭐⭐Linux C++性能优化秘籍:从编译器到代码,探究高性能C++程序的实现之道
⭐⭐⭐⭐⭐Linux C++性能优化秘籍:从编译器到代码,探究高性能C++程序的实现之道
1081 3
|
数据采集 存储 JavaScript
Dynamic Website 爬虫:应对动态内容与 JavaScript 渲染挑战
本文深入探讨了如何设计针对动态网站的爬虫,以采集 WIPO Brand Database 中的专利和技术信息。文章详细介绍了动态网站的挑战,包括 JavaScript 渲染、反爬虫机制和异步加载,并提出了解决方案,如使用 Selenium 模拟浏览器、代理 IP 技术和 API 抓取。最后,通过具体代码示例展示了如何实现这些技术手段。
1109 0
|
消息中间件 缓存 Kafka
原理剖析| 一文搞懂 Kafka Producer(上)
本文介绍了Apache Kafka 3.7的Producer使用及原理,讲解了如何创建和使用Producer,展示了一个发送消息的示例代码,并介绍了ProducerRecord和Callback接口。ProducerRecord包含topic、partition等属性,Callback用于发送消息后的回调处理。接着阐述了send、flush和close方法的功能。文章还探讨了核心组件,包括ProducerMetadata、RecordAccumulator、Sender和TransactionManager,以及消息发送流程。最后,讨论了元数据刷新、分区选择、消息攒批和超时处理等实现细节。
1139 0
原理剖析| 一文搞懂 Kafka Producer(上)
|
机器学习/深度学习 人工智能 算法
用Python实现简单的聊天机器人
【8月更文挑战第31天】 本文将介绍如何使用Python语言和AIML库来实现一个简单的聊天机器人。我们将从基本的安装和配置开始,然后逐步深入到聊天机器人的实现过程。最后,我们将展示如何训练我们的机器人以使其更加智能。无论你是编程新手还是有经验的开发者,都可以从本文中获得实用的知识。
|
开发者 索引 Python
Python中的海象运算符:简洁而强大的赋值表达式
【4月更文挑战第17天】Python 3.8 引入了海象运算符 `:=`,也称赋值表达式运算符,用于在表达式内部赋值,简化代码并提升可读性。它能用于条件判断、循环控制和函数参数等场景,优化逻辑流程。然而,使用时需注意可读性、运算符优先级及赋值限制,以确保代码清晰易懂。海象运算符是Python编程的一个有用工具,但应根据情况谨慎使用。
|
安全 算法 程序员
【C++ 空指针的判断】深入理解 C++11 中的 nullptr 和 nullptr_t
【C++ 空指针的判断】深入理解 C++11 中的 nullptr 和 nullptr_t
1595 0