目录
免责声明 本文所提供的文字和信息仅供学习和研究使用,请读者自觉遵守法律法规,不得利用本文所提供的信息从事任何违法活动。本文不对读者的任何违法行为承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。 |
注意:BurpSuite这样的工具在合法的安全测试和研究学习环境之外的使用可能是非法的和不道德的。在实际应用中,应该在授权和合法的情况下使用它来帮助发现和修复系统中的安全漏洞,以提高系统的安全性。
1. BurpSutie介绍
Burp Suite是一款由PortSwigger Web Security公司开发的开源工具,主要用于网络安全领域,特别是针对Web应用程序的渗透测试。它是一个集成平台,包含了多种工具,用于不同阶段的渗透测试过程,包括:
- Profiling:分析目标应用程序的行为和弱点。
- 扫描:自动发现应用程序中的安全漏洞。
- Guzzling:捕获和分析HTTP/HTTPS请求和响应。
- Intruder:自动化攻击,如SQL注入和跨站脚本攻击。
- Repeater:手动修改和重放HTTP请求。
- Decoder:解码和编码数据。
- Comparer:比较两个版本的Web应用程序以识别变化。
- Spider:爬行网站以发现链接和内容。
- Target:管理渗透测试的目标范围。
BurpSutie是Java语言编写而成,Burp Suite可执行程序是java文件类型的 .jar 文件,免费版有部分高级功能无法使用,如果您想使用更多的高级功能,需要付费购买专业版。
1.1. 工作原理
BurpSuite 的工作原理主要包括以下几个方面:
当用户在浏览器中访问目标 Web 应用时,浏览器的网络流量会被导向 BurpSuite 所设置的代理。
在代理模块中,BurpSuite 会拦截所有的 HTTP/HTTPS 请求。它可以详细地分析请求的各个方面,如请求头、请求参数、请求体等。同时,也能对响应进行全面的查看和解析。
然后,通过各种工具和功能模块来对拦截到的请求和响应进行处理:
- Scanner(扫描器)会自动对请求进行漏洞扫描,检测潜在的安全漏洞。
- Intruder(入侵者)可以针对特定的请求进行各种攻击尝试,比如暴力破解、参数篡改等。
- Repeater(中继器)允许对请求进行手动修改和多次重放,以观察不同情况下服务器的响应。
此外,BurpSuite 还提供了其他辅助模块,如 Comparer(比较器)用于比较不同请求或响应的差异等。它还可以与其他安全工具进行集成,进一步增强其功能和检测能力。总的来说,通过对网络流量的全面控制和深入分析,BurpSuite 能够帮助安全人员有效地发现和评估 Web 应用的安全状况。
1.2. 工具下载
官方下载地址:Burp Suite Release Notes
大家可以自行翻译一下,有专业版和社区版,操作系统有Windows、Linux和Mac版本,根据自己需求下载对应版本。
若因为学习需要需要旧版本可以这样找,点击首页面的 CI/CD Driver ,一直往下点,出现下图页面选择年份,再选择需要版本的就可以了
1.3. 工具激活
运行Burp主程序与激活器
左边的复制到右边,点击下一步
点击手动激活
如果指示按照顺序左右复制粘贴
点击下一步 -> 完成 -> 激活完成
1.4. 代理配置
配置burp默认的代理位置,点击settings -> proxy -> Add,输入端口号、选择本机IP,最好是环回地址,添加失败换个端口号
配置浏览器代理,下载浏览器代理插件(浏览器右上角找到扩展,从扩展商店添加)
Proxy SwitchyOmega、FoxyProxy、SwitchyOmega
这里以foxyproxy为例,点击 proxies -> 添加,输入你在burp设置的代理位置再点save
注意:不抓包的时候把代理关掉
1.5. 导入证书
还是刚才设置代理位置的页面
下一步 —— 选导出位置——后缀是.cer,名字随便起
打开浏览器设置搜索-> 证书 -> 导入证书
1.6. 测试抓包
burp:proxy——intercept——intercept is off
浏览器使用扩展插件开启代理——Burp开启代理——访问 www.baidu.com 抓包
注意:发现抓包页面不对劲可能抓错了页面了,burp代理关了重新开一下,重新访问
2. BurpSutie模块介绍
2.1. 仪表盘(Dashboard)
主要分为三块:Tasks任务、Event log事件日志、Issue Activity动态发现的问题
任务(Tasks):在这个模块中,你可以创建和管理不同类型的任务。其中包括两个预设模板:
- “来自代理(所有流量)的被动抓取”(live passive crawl from proxy (all traffic)):该任务模板结合了以前版本中的 Spider 和 Scanner 模块,可以实现被动抓取功能。它能够从代理获取所有流量,并对其进行抓取和分析。
- “来自代理(所有流量)的实时审计”(live audit from proxy (all traffic)):该任务模板也是从代理获取所有流量,但主要用于实时审计。它可以对流经代理的所有请求进行审计和分析,帮助你发现潜在的安全问题。
事件日志(Event log):在这个模块中,你可以查看和管理系统产生的事件日志。这些事件包括任务的启动、停止、完成以及其他相关的操作信息。通过事件日志,你可以跟踪和监控任务的执行情况。
动态问题发现(Issue activity):在这个模块中,你可以查看和处理动态发现的问题。当任务执行时,系统会自动检测并发现潜在的安全问题和漏洞。这些问题将在动态问题发现模块中展示,并提供相应的处理和修复建议。
2.2. 目标(Target)
Target组件主要由三部分组成站点地图、目标域、Target工具 帮助渗透测试人员更好了解目标应用得整体情况
站点地图(Site Map):该选项卡以树形和表形式显示目标应用程序的结构和内容,并提供了请求和响应的详细信息。你可以扩大有趣的分支以查看更多细节,还可以对请求和响应进行编辑和分析。
- 树视图:显示目标结构的分层表示,包括地址、目录、文件和参数化请求的 URL。
- 表视图:显示每个项目的关键细节,如 URL、HTTP 状态代码、网页标题等。你可以根据任意列进行排序,并在表中选择项目以查看其请求和响应。
范围(Scope):该选项卡主要用于配合站点地图进行过滤,你可以通过勾选或取消勾选相应的选项来确定哪些项目在范围内或不在范围内。
2.3. 代理(Proxy)
Proxy 模块是 BurpSuite 的核心功能之一,它作为一个拦截 HTTP/S 的代理服务器,在浏览器和目标应用程序之间充当中间人,允许用户拦截、查看和修改在两个方向上的原始数据流。该模块主要包含以下几个部分:
1、Intercept(截断)**:用于显示和修改 HTTP 请求和响应,通过浏览器和 Web 服务器之间。在 BurpProxy 的选项中,可以配置拦截规则来确定请求和响应是什么被拦截。该面板还包含一些控制,如消息类型显示的四种格式:
- - **raw(原始)**:这里显示的是纯文本形式的消息。在文本窗口的底部提供了一个搜索和加亮功能,可以用它来快速地定位出消息中的感兴趣的字符串,如错误消息。在搜索的左边有一个弹出项,让你来处理大小写问题,以及是使用简单的文本搜索还是正则表达搜索。
- - **params(参数)**:对包含参数(URL 查询字符串、cookies 消息头或消息体)的请求,这个选项可以把参数分析成名称/值的组合,并且允许你能简单地查看和修改。
- - **headers(头信息)**:这里以名称/值的组合来显示 HTTP 的消息头,并且还以原始的形式显示消息体。
- - **hex(十六进制)**:这里允许你直接编辑消息的原始二进制数据。如果在文本编辑器里修改,某些传输类型(例如,使用 MIME 编码的浏览器请求的部分)包含的二进制数据可能被损坏。为了修改这些类型的消息,应使用十六进制。
2、HTTP History(HTTP 历史)**:将所有通过监听窗口的数据往来记录保留下来,可以查看包的内容以及反馈。
3、WebSockets history(WebSockets 历史)**:针对网站的历史。
4、Options(选项)**:可以进行一些设置,如代理设置、拦截请求设置、响应拦截设置、拦截 WebSockets Messages 设置、响应操作设置、搜索和替换设置、TLS Pass Through 设置、Miscellaneous 设置等。
Forward:将拦截的数据包放行(允许数据包到目标服务器或浏览器)
Drop:将拦截得数据包丢弃(数据包将不会到达目标服务器或浏览器)
Intercept is on/off :on为开启数据包拦截、off为关闭数据包拦截。
Action:将拦截到得当前数据包发送到其他模块。
Open Browser:打开Burp内置浏览器
2.4. 重放器(Repeater)
BurpSuite 中的重放器(Repeater)主要有以下功能和特点:
功能:
- 请求重放:可以将拦截到的请求在该模块中多次重复发送,以便观察服务器在不同情况下的响应。
- 手动修改请求:能够对请求的各种参数、头信息、请求体等进行精细化的编辑和修改,然后再发送出去,用于测试不同输入对服务器的影响。
特点:
- 直观显示:清晰地展示原始请求和每次修改后重放的请求以及相应的响应。
- 方便对比:便于对比不同重放操作产生的不同响应,帮助发现潜在的安全问题或异常情况。
- 灵活调试:是进行请求调试和安全测试的重要工具,帮助深入了解目标系统的行为和漏洞情况。
2.5. 序列器(Sequencer)
Burp Suite 中的序列器(Sequencer)模块主要用于检测参数的随机性,例如密码或者令牌是否可预测,以此判断关键数据是否可以被伪造。具体来说,序列器模块可以创建一个字节序列并计算其熵值,以评估序列中数据的随机性和可预测性。该功能还能检测序列中存在的模式和重复数据。在安全测试和漏洞研究中,序列器模块常被用于评估加密算法、会话令牌和其他安全机制的随机性和强度。
2.6. 解码器(Decoder)
Burp Suite 中的 Decoder 模块主要用于编码和解码操作,它可以将数据转换为各种编码和散列形式,也能够智能地识别多种编码格式。以下是 Decoder 模块的一些常见功能:
- **解码**:将编码后的数据转换回原始格式,例如将 URL 编码、Base64 编码或其他编码类型的数据进行解码。
- **编码**:将原始数据转换为特定的编码格式,以便在不同的场景中使用。
- **智能解码**:能够智能地识别多种编码格式,并尝试以连续递归的形式进行解码,直到没有可识别的数据格式。
- **支持的编码类型**:包括 URL、HTML、Base64、ASCII 十六进制、十六进制、八进制、二进制和 GZIP 等。
- **哈希计算**:可以使用各种常见的散列函数来计算数据的哈希值。
- **部分解码**:选中数据的一部分进行解码,选中的部分将会对应着色,并且会打开一个新的编辑器窗口显示选中部分的转换结果。
在安全测试中,Decoder 模块常用于以下方面:
- **绕过安全机制**:通过编码转换来绕过一些安全机制或限制,例如 WAF(Web 应用防火墙)。
- **数据分析**:对编码后的数据进行解码,以获取原始数据并进行分析。
- **漏洞发现**:某些漏洞可能与特定的编码方式或不正确的解码有关,通过 Decoder 模块可以发现这些问题。
- **测试应用程序的编码处理**:检查应用程序是否正确地处理了不同编码类型的数据。
使用 Decoder 模块时,可以直接输入要解码或编码的数据,选择相应的编码类型,然后执行解码或编码操作。此外,还可以在其他模块(如 Proxy、Target)中右键选择“Send to Decoder”将数据发送到 Decoder 模块进行处理。
2.7. 对比模块(Comparper)
Burp Suite 中的 Comparer 模块用于比较两个请求或响应之间的差异,帮助安全测试人员发现潜在的安全问题。它可以比较不同请求之间的参数、头部信息、正文内容等,并以易于理解的方式展示差异。通过比较差异,安全测试人员可以更容易地确定是否存在篡改、注入或其他安全漏洞。
2.8. 日志(Logger)
在 Burp Suite 中,Logger(日志记录器)模块主要用于记录各种与代理相关的活动信息。
它可以记录请求和响应的详细内容,包括请求的方法、URL、参数、头信息以及响应的状态码、内容等。这有助于对测试过程进行跟踪和分析,方便在需要时查看特定的交互细节,以便更好地理解应用程序的行为和发现潜在的问题。同时,这些日志信息也可以用于后续的审查和总结。
2.9. 爆破模块(Intruder)
Burp Suite 中的 Intruder(入侵者)模块是一个强大的自动化攻击工具。
主要功能包括:
- **攻击模式设置**:可以选择多种攻击模式,如 Sniper(狙击手模式)、Battering Ram(攻城锤模式)、Pitchfork(叉状模式)、Cluster Bomb(集束炸弹模式)等,以适应不同的攻击场景。
- **定义攻击位置**:能够指定请求中的特定参数作为攻击点。
- **设置攻击payload**:可以导入或自定义各种类型的攻击payload,如字典、数字序列等。
- **批量测试**:对目标进行大量的请求发送,以探测可能存在的漏洞,如 SQL 注入、暴力破解等。
- **结果分析**:提供详细的攻击结果报告,方便分析攻击的效果和发现潜在的漏洞线索。
Intruder 模块在安全测试中常用于对 Web 应用程序进行漏洞挖掘和分析。
Positions(位置)
可以理解为是一个变量,后续添加的payload将会在该位置上进行遍历测试。通过右侧菜单栏进行 添加、删除的操作
Attack type 攻击类型
Intruder 中的攻击类型主要有以下几种:
1. **Sniper(狙击手模式)**:一次只针对一个位置进行攻击,每次替换一个定义的攻击点。
2. **Battering Ram(攻城锤模式)**:对多个攻击位置同时使用相同的 payload 进行攻击。
3. **Pitchfork(叉状模式)**:多个攻击位置同时进行攻击,但每个位置使用不同的、相关联的 payload。
4. **Cluster Bomb(集束炸弹模式)**:对多个攻击位置进行所有可能的 payload 组合攻击。
Payload
在 Burp Suite 的 Intruder 模块中,“Payload”(有效负载)指的是用于在攻击过程中替换指定攻击位置的数据。
这些有效负载可以有多种形式,比如常见的字典列表(包含用户名、密码、常见字符串等)、数字序列、特殊字符组合、根据特定规则生成的字符串等。
通过设置不同类型的有效负载并进行大量尝试,可以探测目标系统在不同输入情况下的反应,从而发现潜在的安全漏洞,如 SQL 注入漏洞中尝试不同的 SQL 语句作为有效负载来查找敏感信息泄露等情况。用户可以根据具体的攻击需求和目标特征来定制和选择合适的有效负载。
Resource Pool线程池
在 Burp Suite 中,“Resource Pool”(线程池)主要用于管理和分配执行任务所需要的线程资源。
通过合理配置线程池,可以优化性能,比如控制同时进行的请求数量、提高处理效率等。它可以根据实际需求动态地调整线程的数量和分配,以更好地适应不同的测试场景和负载情况,确保 Burp Suite 在执行各种操作时能够高效、稳定地运行。
Start Attack(开始攻击)
“Start Attack(开始攻击)”就是在 Burp Suite 的 Intruder 等相关模块中,启动已设置好的攻击操作。
当完成攻击模式、攻击位置、有效负载等相关配置后,点击“Start Attack”按钮,Burp Suite 就会按照设定开始向目标系统发送大量经过特定处理的请求,以进行漏洞探测或其他类型的攻击测试。这个操作会触发一系列自动化的攻击过程,以便安全测试人员观察和分析攻击结果,从而发现目标系统可能存在的安全弱点。
攻击过程及结果。
Request:请求次数。
Payload1:设置的第一个payload位置
Payload2:设置的第二个payload位置
Status:响应状态码
Length:响应内容长度(一般就是通过该参数判断是否成功。)
2.10. 协作(Collaborator)
Burp Collaborator的功能作用
Burp Collaborator是Burp Suite Pro中的一个模块,它的主要功能是在进行渗透测试时,帮助测试人员发现那些不易直接观察到的漏洞,如盲SQL注入、盲跨站脚本(XSS)、服务器侧请求伪造(SSRF)等。这些类型的漏洞通常需要目标服务器与外部服务器进行交互才能被检测到,而Burp Collaborator正是扮演了这个外部服务器的角色。
主要功能
-
捕捉Payload交互:Burp Collaborator能够捕捉到Burp发出的Payload,并记录目标服务器与外部服务器之间的所有交互行为。
-
数据记录与分析:Burp Collaborator会记录目标服务器对Payload的响应,包括HTTP请求和响应详情、DNS查询详情等,帮助测试人员分析是否存在漏洞。
-
支持多种协议:Burp Collaborator支持HTTP/HTTPS和DNS协议,可以记录与这些协议相关的所有请求和响应。
-
实时交互监控:Burp Collaborator可以实时监控目标服务器与外部服务器之间的交互,并在Burp界面中展示这些交互的详细信息。
-
提高测试效率:通过使用Burp Collaborator,测试人员无需等待目标服务器对Payload做出响应,可以直接从Burp Collaborator获取这些信息,大大提高了测试效率。
使用方法
Burp Collaborator的使用方法相对简单。首先,需要在Burp Suite Pro中安装Collaborator插件。接着,在项目设置中选择使用Burp提供的默认Collaborator服务器,或者自定义自己的Collaborator服务器。在使用过程中,可以通过Burp Collaborator Client来运行和监控Collaborator服务器的状态。
实际应用
在实际应用中,Burp Collaborator可以帮助测试人员发现那些难以通过常规手段检测的漏洞。例如,在进行盲SQL注入测试时,由于目标服务器不会立即返回任何信息,测试人员可以使用Burp Collaborator来监控目标服务器是否尝试访问外部服务器,以此来判断是否存在漏洞。
总的来说,Burp Collaborator是一个强大的工具,它通过提供外部服务器的功能,帮助渗透测试人员更容易地发现和利用各种Web应用程序的安全漏洞。
2.11. 拓展插件(Extender)
Burp Suite Extender是一个非常有用的工具,它通过提供扩展功能的方式,使得Burp Suite能够适应更复杂的渗透测试需求。
Burp Suite Extender的作用
Burp Suite Extender是Burp Suite Pro中的一个重要组成部分,它允许用户通过编写自定义插件或从插件商店中安装扩展插件来扩展Burp Suite的功能。这些扩展插件可以以多种方式支持自定义Burp的行为,例如修改HTTP请求和响应、自定义UI、添加自定义扫描程序检查以及访问关键运行时信息,如代理历史记录、目标站地图和扫描程序问题等。
如何使用Burp Suite Extender
用户可以在Burp Suite的BApp Store中下载官方的扩展包,或者自行导入本地的插件,这些插件可以是用户自己编写的或者是从其他来源获取的。使用方法与官方插件相同。在需要使用时,用户可以将数据包发送至响应插件模块。已安装的插件会在工具栏显示,并且在Extensions扩展中可以看到,用户还可以对其进行卸载。
注意事项
在使用Burp Suite Extender时,需要注意的是,虽然它可以极大地增强Burp Suite的功能,但是也需要确保所使用的插件是安全可靠的,避免因为插件本身存在漏洞而导致的安全问题。此外,对于自行开发的插件,需要确保它们能够在不同的环境和配置下正常工作,并且不会干扰Burp Suite的其他功能。
burp 插件商店。管理插件。API 文档。
Extensions:管理插件。
BApp Store:插件市场。
APIS:burp 的 API 文档。
Options:插件自启动,以及更新。语言环境
Add导入.jar格式的文件
Add导入插件文件夹
菜单栏没有的话点——重新加载脚本
插件商城
2.12. 设置(Settings)
2.12.1. 网络连接设置(Connections)
Burp Suite 的网络连接设置
在Burp Suite中,网络连接设置主要涉及到以下几个方面:
-
代理设置:Burp Suite 作为一个代理工具,可以拦截和转发所有通过代理的网络流量。您需要在您的浏览器或其他应用程序中配置代理设置,以便所有的流量都通过Burp Suite进行。这通常涉及到设置代理服务器地址为
127.0.0.1
和端口8080
。 -
JVM内存设置:由于Burp Suite是基于Java虚拟机(JVM)运行的,因此需要设置JVM的内存大小,以确保有足够的资源来处理大量的网络请求。例如,您可以为Burp Suite分配2GB或更多的内存。
-
IPv6问题解决:如果您在使用Burp Suite时遇到IPv6相关的问题,可以通过设置Java系统属性来解决。例如,您可以使用
-Djava.net.preferIPv4Stack=true
参数来告诉Java运行环境优先使用IPv4协议栈进行数据通信。 -
其他网络参数:Burp Suite还提供了其他网络相关的参数设置,比如SSL连接和加密设置、会话设置、显示设置等。这些设置可以帮助您调整Burp Suite的行为,以满足特定的测试需求。
在进行网络连接设置时,请确保遵循最佳实践,包括使用安全的代理设置、合理的内存分配以及其他必要的网络参数配置,以确保Burp Suite能够高效且稳定地运行。
上游代理(Upstream Proxy Servers)
Burp Suite 的上游代理服务器设置
在Burp Suite中,上游代理服务器(Upstream Proxy Servers)设置允许您将传出请求发送到上游代理服务器,而不是直接发送到目标Web服务器。这对于需要通过代理服务器访问特定网站的情况非常有用,例如,当您需要绕过地理位置限制或访问特定区域内的网站时。
如何设置上游代理服务器
- 在Burp Suite中,转到
User options
->Connections
。 - 找到
Upstream Proxy Servers
一节。 - 点击左边的
Add
按钮来添加一个新的上游代理服务器规则。 - 在弹出的编辑窗口中,填写代理服务器的相关信息,包括代理服务器的地址、端口、认证类型以及任何必要的认证信息。
- 确认无误后,点击
OK
保存设置。
注意事项
- 当您设置上游代理服务器时,所有满足规则的请求都将通过指定的代理服务器发送。
- 如果上游代理服务器需要认证,您需要提供相应的用户名和密码。
- 您可以根据需要设置多个上游代理服务器规则,Burp Suite 将按照规则的先后顺序来决定使用哪个代理服务器。
实际应用场景
例如,如果您需要通过某个特定的代理服务器访问内网资源,您可以在Burp Suite中设置上游代理服务器,并将其指向该代理服务器的地址和端口。这样,当您使用Burp Suite进行测试时,所有请求都会通过这个上游代理服务器,从而能够访问到内网资源。
请注意,设置上游代理服务器可能会影响到您的网络访问速度和安全性,因此在设置之前,请确保您了解潜在的影响,并根据实际情况做出明智的选择。
2.13. Socks代理
Socks代理在Burp Suite中的设置和使用
Socks代理是一种网络协议,它允许通过代理服务器传输网络请求。在Burp Suite中,Socks代理可以用来捕获和修改通过代理服务器进行的网络流量。以下是关于如何在Burp Suite中设置和使用Socks代理的基本步骤:
-
设置Socks代理服务器:
- 首先,你需要有一个运行着的Socks代理服务器。例如,如果你正在使用Shadowsocks(一种流行的Socks代理工具),你需要启动Shadowsocks服务,并记下它的IP地址和端口。
-
在Burp Suite中配置Socks代理:
- 打开Burp Suite,转到
User options
->Connections
。 - 在
SOCKS Proxy
部分,输入你的Socks代理服务器的IP地址和端口。 - 如果Socks代理服务器需要认证,还需要填写用户名和密码。
- 勾选“Use SOCKS proxy”,这样Burp Suite就会使用Socks代理服务器来发送所有出站的TCP请求。
- 打开Burp Suite,转到
-
验证设置是否正确:
- 你可以通过访问一些知名的网站,如
http://www.example.com
,然后在Burp Suite的Proxy Interceptor中检查是否有流量被捕获。 - 如果能看到流量被捕获,说明Socks代理设置成功,你可以继续进行网络流量分析和渗透测试。
- 你可以通过访问一些知名的网站,如
请注意,使用Socks代理时,所有出站的TCP请求都会通过这个代理服务器,这可能对你的网络访问速度有所影响。此外,如果你的Socks代理服务器位于防火墙后面,你可能需要确保防火墙配置正确,允许相应的端口流量通过。
以上步骤基于最新的搜索结果和Burp Suite的通用操作流程,具体操作可能会有所变化,建议在实际操作中参考Burp Suite的官方文档或社区指南。
本人发布、转载的文章中所涉及的命令、技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!!!!!