测试框架|Burp Suite几个基本工具的使用

前阵子项目上想通过测试工具在网页上模拟返回错误代码 500 来查看页面的错误处理,然后去调查了下 burp suite,看了些基本工具的使用文档。虽然最后证实 burp suite 只能用来处理页面测试应用程序的实际行为和响应,而不是尝试模拟不存在的问题或错误,但还是有所收获,也想和大家分享一下这几个 burp suite 社区版提供的基本工具。

Burp Suite简单介绍

Burp Suite 是一款安全测试工具,具有拦截、代理、扫描、攻击、测试等多种功能,可以对 Web 应用程序进行安全评估、漏洞扫描和渗透测试。Burp Suite 分为社区版、专业版还有企业版。社区版只有最基础的手动安全测试工具(Inspector, Repeater, Sequencer, Comparer),并且不能保存项目文件;专业版可以保存,具有完整的 burp 工具箱,可以自定义攻击,扫描漏洞,设置自动化安全测试等;企业版可以自动进行动态扫描,将扫描集成到 CI/CD 平台等。

Burp Suite的使用

1. 安装

Burp Suite 社区版直接在官网下载软件,打开即用。但是打开后只有 Temporary Project,每次项目文件无法保存。

图片

2. Proxy

Burp Porxy 可以拦截并记录 Burp Browser 和目标服务器之间发送的 Websocket 通信/HTTP 请求和响应。

图片

点击 Open browser 后,会自动启动一个 Chromium 浏览器,就是上面提到的 Burp Browser。官方文档建议将 Burp Suite 和 Burp Browser 调整到你可以同时看到两个窗口以便于后续操作。

在 Intercept is off 的情况下,Burp Browser 只会记录浏览器的历史。当打开 Intercept 时,每一个 http 请求都会被拦截下来,多次点击 Forward,发送被拦截的请求,以及任何后续的请求,直到该页面在 Burp 的浏览器中加载。因为开启 Intercept 后执行的每个 HTTP 请求都需要点击 Forward 才可以继续,所以最好是先不开启 Intercept,执行到自己需要的步骤前一到两步,再打开。

图片

这个拦截步骤也是后续使用 Burp Suite 工具的一个前提。

图片

可以看到在拦截下的请求中,有个 Action 的选项,展开后,可以将当前拦截下的请求发送到几个基础工具中,下面来一一介绍。

Burp Suite 的基础工具

1. Inspector

Inspector 能够快速查看和编辑 HTTP 和 WebSocket 消息的特征。

如上图所示,http 请求被拦截下时,右边有个 Inspector 的区域。一共有 Request Attributes, Request Query Parameters, Request Body Parameters, Request Cookies, Request Headers 五个部分,可以展开查看每个部分的内容,也可以手动更改内容值。例如 Request Attributes 中可以选择使用 HTTP/1 或 HTTP/2 协议,或者更改 HTTP Method 等。其他部分也可以直接对参数值进行修改,修改后直接 Apply changes,应用成功后的修改会变成橙色的,然后点击 Forward 观察页面变化。

图片

2. Repeater

Burp Repeater 能够修改并反复发送一个 HTTP 或 WebSocket 消息。

在拦截到请求时点击 Action -> Send to Repeater, 拦截的请求会被发送到 Repeater 中(可以发送多个请求到 Repeater 中)。在 Repeater 里,可以任意修改请求内容,并且查看对应的响应。

而且,在请求或响应中选择的对应文本,会直接显示在 Inspector 中,伴随显示解码后的文本,解码类型有四种 URL encoding, HTML encoding, Base 64, Base 64 URL。

3. Sequencer

Sequencer 用来生成随机数和伪随机数,可以帮助分析分析 token 样本中的随机性质量。token 可以是 Session tokens, Anti-CSRF tokens, Password reset tokens 等旨在保持不可预测性的令牌。

将包含会话信息的请求转发到 Sequencer 中,Token Location Within Response 会自动识别 token,也可以自己选择想要分析的 token;Live Capture Options 可以控制线程数量和请求的限制速率等。设置好上述两个部分,就可以点击 Start live capture 来分析对应的 token 了。

Burp Suite 会产生另一个页面来分析 token 的指标,有效熵、可靠性等,还有字符级别和位级别的分析。不点击 stop,样本量会无限增长,可以在 Auto analyze 旁边的 next 知道这一阶段的目标样本量。

图片

4. Comparer

Comparer 可以比较识别出请求或响应之间的微妙差异,也可以比较任何两个数据项。

拦截请求后发送给 Comparer,请求会自动复制到 Comparer 的列表上,在上下两个部分分别选择两个不同的选项,并在右下角选择比较单词还是字节。

图片

弹出的弹窗里会自动进行左右两边的对比,像 diff 一样将右边与左边对比修改,删除和增加的各项。

图片

拦截请求只能将请求进行对比,如果想对比响应的话,需要自己复制粘贴到列表中,选择后也可以进行对比。

5. Intruder

Intruder 是一个用于对网络应用程序进行自动化定制攻击的工具。能够配置攻击参数,反复发送相同的 HTTP 请求,根据不同的攻击方式,每次在预定义的位置插入不同的 payload 发送请求。

将请求发送到 Intruder 后,可以选择攻击类型以及要攻击的参数。

图片

然后在 Payloads 的页面中配置要使用的攻击负载类型,添加常见的攻击负载(社区版只能手动添加,专业版可以直接上传文件)。

图片

然后点击 start attack 开始发送请求攻击,并弹出一个对应的响应列表,供使用者查看。

图片

结语

上述五种工具是 Burp Suite 的几个基本工具,使用方法较为简单,但是在做安全测试时测试的角度和测试数据之类的还是需要一定的积累。之前也接触过另一个安全测试工具 OWASP ZAP,使用过类似Repeater 的工具,相比较起来,Burp Suite 的界面更容易上手,更加简单一点,只是社区版功能太少,很多功能只能手动操作。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python脚本传参

sys.argvargparse 第一种:argparse 简单使用: import argparse # 创建一个参数解析实例 parser argparse.ArgumentParser(descriptionParameters) # 添加参数解析 parser.add_argument(--training_epoch, typeint, default3000) parser.add_argument(…

flutter + firebase 云消息通知教程 (android-安卓、ios-苹果)

如果能看到这篇文章的 一定已经对手机端的 消息推送通知 有了一定了解。 国内安卓厂商这里不提都有自己的FCM 可自行查找。(国内因无法科学原因 ,不能使用谷歌服务)只说海外的。 目前 adnroid 和 ios 推送消息分别叫 FCM 和 APNs。这里通过…

flutter开发windows应用的库

一、window_manager 这个插件允许 Flutter 桌面应用调整窗口的大小和位置 地址:https://github.com/leanflutter/window_manager二、win32 一个包,它使用FFI包装了一些最常见的Win32 API调用,使Dart代码可以访问这些调用,而不需…

华为交换机配置BGP的基本示例

BGP简介 定义 边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。早期发布的三个版本分别是BGP-1(RFC1105&#xff0…

Python+Playwright自动化测试--playwright处理浏览器多窗口切换

1.简介 浏览器多窗口的切换问题相比大家不会陌生吧,之前小编在javaselenium系列文章中就有介绍过。大致步骤就是:使用selenium进行浏览器的多个窗口切换测试,如果我们打开了多个网页,进行网页切换时,我们需要先获取各…

Ubuntu 常用命令之 history 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 history命令在Ubuntu系统中用于显示用户执行过的命令列表。这个命令在bash shell中非常有用,特别是当你需要记住你之前执行过的命令时。 history命令的参数如下 -c:清除历史记录。-d offset:删…

突破性能瓶颈:使用Asyncio构建高并发Python应用程序

是一种处理多个任务同时执行的编程方式,在Python中,asyncio是一种用于实现异步编程的强大工具。asyncio基于协程(coroutine)的概念,能够高效地处理I/O密集型任务。本文将介绍asyncio的基本原理和使用方法。 为啥需要a…

Nature Commun.:物理所揭示原子分辨下的铁电涡旋畴的原位力学转变过程

通过复杂的晶格-电荷相互作用形成的铁电涡旋畴在纳米电子器件研发中具有巨大的应用潜力。实际应用中,如何在外界激励下操纵这类结构的拓扑状态是至关重要的。中国科学院物理研究所/北京凝聚态物理国家研究中心表面物理国家重点实验室与北京大学、湘潭大学和美国宾夕…

云原生文件存储 CFS 线性扩展到千亿级文件数,百度沧海·存储论文被 EuroSys 2023 录用

恭喜百度沧海云存储和中科大合作的论文《CFS: Scaling Metadata Service for Distributed File System via Pruned Scope of Critical Sections》(以下简称论文)被 EuroSys 2023 录用。 EuroSys 全称欧洲计算机系统会议(The European Confer…

ROS2 学习09--ros 中的通信接口的定义以及如何创建自定义msg、srv和action文件

在ROS系统中,无论话题还是服务,或者我们后续将要学习的动作,都会用到一个重要的概念——通信接口。 通信并不是一个人自言自语,而是两个甚至更多个人,你来我往的交流,交流的内容是什么呢?为了让…

【收藏】法律人办案必备检索网站最新汇总!附检索技巧

为什么要进行法律检索?无论你擅长的是做诉讼还是非诉讼业务,法律检索都是必备技能之一。只有做好法律检索才能制定出更加完备的策略报告,才能提供更加充实、可行、准确的方案。 一、数据库检索 1、alpha数据库 https://www.icourt.cc 已经用了3年的大数据库,听说最近降价了…

微前端样式隔离、sessionStorage、localStorage隔离

1、样式隔离 前端样式不隔离,会产生样式冲突的问题,这个点在qiankun也存在 子应用1修改一个样式 button {background: red!important; }其它应用也会受到影响 qiankun的css隔离方案(shadow dom) shadow …

c语言易错题之数据类型变换

1.题目 #include<stdio.h> int main() {int arr[]{1,2,3,4,5};short*p (short*)arr;int i 0;for(i0;i<4;i){*(pi)0;}for(i0;i<5;i){printf("%d ",arr[i];}return 0; }2.解析 这道题主要容易错在&#xff0c;大家会以为通过指针赋值的时候&#xff0c;…

pickle反序列化

文章目录 基础知识pickle简介可序列化对象object.__reduce__() 函数 pickle过程详细解读opcode简介pickletools 漏洞利用利用思路如何手写opcode 工具pker实战例题[MTCTF 2022]easypickle 基础知识 pickle简介 与PHP类似&#xff0c;python也有序列化功能以长期储存内存中的数…

docusaurus简介及使用心得

docusaurus简介 Docusaurus 是 Facebook 专门为开源项目开发者提供的一款易于维护的静态网站创建工具&#xff0c;使用 Markdown 即可更新网站。构建一个带有主页、文档、API、帮助以及博客页面的静态网站&#xff0c;只需5分钟。 同类竞品还有vuepress&#xff0c;docusaurus…

基于Linux下gcc学习C/C++——编译过程

前提&#xff1a;WSL2&#xff08;Ubuntu&#xff09;、gcc编译器。gcc安装命令&#xff1a; sudo apt-get install gcc 查看gcc版本&#xff1a; 目录 1、编译过程 1.1、预处理 1.2、编译与汇编 1.3、链接 2、gcc实验 2.1、预处理 2.2、编译 2.3、汇编 2.4、链接 1、…

Win系统修改Nginx配置结合内网穿透实现远程访问多个Web站点

文章目录 1. 下载windows版Nginx2. 配置Nginx3. 测试局域网访问4. cpolar内网穿透5. 测试公网访问6. 配置固定二级子域名7. 测试访问公网固定二级子域名 1. 下载windows版Nginx 进入官方网站(http://nginx.org/en/download.html)下载windows版的nginx 下载好后解压进入nginx目…

[笔记]netty随笔

记录使用过程中偶然发现的一些关键逻辑。先做记录&#xff0c;以后netty知识有一定体系再做整理 childGroup 服务器中有俩group&#xff0c;一个是parentGroup&#xff0c;负责处理链接请求&#xff0c;一个是childGroup&#xff0c;负责业务逻辑。 channelActive是在childG…

Spring中你一定要知道的@PostConstruct/@PreDestroy

文章目录 功能源码解析执行 功能 Spring中存在很多回调&#xff0c;但是执行他们的时机都不相同&#xff0c;也许大家用的最多的是InitializingBean.afterPropertiesSet&#xff0c;这个方法的作用如名称一样&#xff0c;是bean初始化后执行的一个回调操作&#xff0c;而PostC…

C语言学习NO.9-指针(一)内存和地址,指针变量和地址,指针变类型的意义,const修饰指针,指针运算,野指针,assret断言,指针的使用和传址调用

指针是什么&#xff1f; 指针是什么&#xff1f; 指针理解的2个要点&#xff1a; 1.指针是内存中一个最小单元的编号&#xff0c;也就是地址&#xff1b; 2.平时口语中说的指针&#xff0c;通常指的是指针变量&#xff0c;是用来存放内存地址的变量。 总结&#xff1a;指针就是…