1、Getting StarBurp Suite

  是用于攻击 web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。所有的工具都共享一个能处理并显示 HTTP 消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。本文主要介绍它的以下特点:

1.Target(目标):显示目标目录结构的的一个功能
2.Proxy(代理):拦截 HTTP/S 的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
3.Spider(蜘蛛):应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
4.Scanner(扫描器):高级工具,执行后,它能自动地发现 web 应用程序的安全漏洞。
5.Intruder(入侵):一个定制的高度可配置的工具,对 web 应用程序进行自动化攻击,如:
枚举标识符,收集有用的数据,以及使用 fuzzing 技术探测常规漏洞。
6.Repeater(中继器):一个靠手动操作来触发单独的 HTTP 请求,并分析应用程序响应的工具。
7.Sequencer(会话):用来分析那些不可预知的应用程序会话 tokens 和重要数据项的随机性的工具。
8.Decoder(解码器):进行手动执行或对应用程序数据者智能解码编码的工具。
9.Comparer(对比):通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差 异”。
10.Extender(扩展):可以让你加载 Burp Suite 的扩展,使用你自己的或第三方代码来扩展 Burp Suit 的功能。
11.Options(设置):对 Burp Suite 的一些设置

1.1 测试工作流程

  Burp 支持手动的 Web 应用程序测试的活动。它可以让你有效地结合手动和自动化技术,使您可以完全控制所有的 BurpSuite 执行的行动,并提供有关您所测试的应用程序的详细信息和分析。
让我们一起来看看 Burp Suite 的测试流程过程吧。
如下图
image.png

简要分析
  代理工具可以说是 Burp Suite 测试流程的一个心脏,它可以让你通过浏览器来浏览应用程序来捕获所有相关信息,并让您轻松地开始进一步行动,在一个典型的测试中,侦察和分析阶段包括以下任务:
  手动映射应用程序-使用浏览器通过 BurpSuite 代理工作,手动映射应用程序通过以下链接,提交表单,并通过多步骤的过程加强。这个过程将填充代理的历史(Proxy>HTTP history)和目标站点地图(Target>Sitemap)与所有请求的内容,通过被动蜘蛛(Spider)将添加 到站点地图,可以从应用程序的响应来推断任何进一步的内容(通过链接、表单等)。也可以请求任何未经请求的站点(在站点地图中以灰色显示的),并使用浏览器请求这些。
  在必要时执行自动映射-您可以使用 BurpSuite 自动映射过程中的各种方法。可以进行自动蜘蛛爬行,要求在站点地图未经请求的站点。请务必在使用这个工具之前,检查所有的蜘蛛爬行设置。
  使内容查找功用能发现(filter),可以让您对浏览或蜘蛛爬行可见的内容链接以进一步的操作。
  使用 BurpSuite Intruder(入侵者)通过共同文件和目录列表执行自定义的发现,循环, 并确定命中。
  注意,在执行任何自动操作之前,可能有必要更新的 BurpSuite 的配置的各个方面, 诸如目标的范围和会话处理。
  分析应用程序的攻击面 - 映射应用程序的过程中填入代理服务器的历史(HTTP history)和目标站点地图(Sitemap)与所有的 BurpSuite 已抓获有关应用程序的信息。这两个库中包含的功能来帮助您分析它们所包含的信息,并评估受攻击面的应用程序公开。此外,您可以使用 BurpSuite 的目标分析器报告的攻击面的程度和不同类型的应用程序使用的 URL 。
  接下来主要介绍下 BurpSuite 的各个功能吧。先介绍 Proxy 功能,因为 Proxy 起到一个心脏功能,所有的应用都基于 Proxy 的代理功能。

1.2 Burp Suite 功能按钮键翻译对照

1.2.1 导航栏

导航栏
Burp BurpSuite save state wizard 保存状态向导
Burp BurpSuite save state wizard 保存状态向导
restore state 恢复状态 Remember setting 记住设置
restore defaults 恢复默认 Intruder 入侵者
Start attack 开始攻击(爆破) "Actively scan defined insertion points" 定义主动扫描插入点
Repeater 中继器 New tab behavior 新标签的行为
"Automatic payload positions" 自动负载位置 config predefined payload lists 配置预定义的有效载荷清单
Update content-length 更新内容长度 unpack gzip/deflate 解压 gzip/放弃
Follow redirections 跟随重定向 process cookies in redirections 在重定向过程中的 cookies
View 视图 Action 行为

1.2.1 功能项

功能项
Target 目标 Proxy 代理
Spider 蜘蛛 Scanner 扫描
Intruder 入侵者 Repeater 中继器
Sequencer 定序器 Decoder 解码器
Comparer 比较器 Extender 扩展
Options 设置 Detach 分离
Filter 过滤器 SiteMap 网站地图
Scope 范围 Filter by request type 通过请求过滤
Intercept 拦截 response Modification 响应修改
match and replace 匹配和替换 ssl pass through SSL 通过
Miscellaneous 杂项 spider status 蜘蛛状态
crawler settings 履带式设置 passive spidering 被动蜘蛛
form submission 表单提交 application login 应用程序登录
spider engine 蜘蛛引擎 scan queue 扫描队列
live scanning 现场扫描 live active scanning 现场主动扫描
live passive scanning 现场被动扫描 attack insertion points 攻击插入点
"active scanning optimization" 主动扫描优化 active scanning areas 主动扫描区域
passive scanning areas 被动扫描区域 Payload 有效载荷
payload processing 有效载荷处理 select live capture request 选择现场捕获请求
token location within response 内响应 tokens 的位置 live capture options 实时捕捉选项
Manual load 手动加载 Analyze now 现在分析
Platform authentication 平台认证 Upstream proxy servers 上游代理服务器
Grep Extrack 提取

2、Proxy

  Burp Proxy 相当于 BurpSuite 的心脏,通过拦截,查看和修改所有的请求和响应您的浏览器与目标 Web 服务器之间传递。 下面了解有关 BurpProxy:
image.png

2.1 Using BurpProxy http、https

2.1.1 http

  设置代理的方法:以 http ie 为例:
工具>>Internet 选项>>连接>>局域网>>勾选代理服务器填写地址 127.0.0.1 端口 8080 这里 端口可以随便定义但是要跟 burp 的监听端口要一致然后保存再到 Proxy 的 Options 中添加add
image.png

image.png

这样 http 协议的监听就可以了,当 intercept is on 表示开启拦截功能,反之
image.png
  这样就代表拦截成功,我们可以右击 send to Repeater 去修改数据再发送,也可以右击改变 提交请求方式(change request method)比如 get 或者 post 等功能

2.1.2 https

1.以管理员权限运行 ie 浏览器,
2.像 http 那样配置好代理
3.在地址栏访问 https 地址,单击继续
4.点击错误证书在这个地址栏
5.点击查看证书
6.在证书路径选项卡点击 PortSwigger CA,然后再点击查看证书
7.在常规选项卡里点击安装证书
8.在证书导入向导中,选择“将所有的证书放入下列存储区”受信任的跟证书颁发机构
9.点击浏览
10.以当前用户或者本机计算机都可以
11.点击 ok 完成导入
12.重启 ie(不需要以管理员权限运行)

2.2 Intercept

  用于显示和修改 HTTP 请求和响应,通过你的浏览器和 Web 服务器之间。在BurpProxy 的选项中,您可以配置拦截规则来确定请求是什么和响应被拦截(例如,范围内的项目,与特定文件扩展名,项目要求与参数,等)。
  该面板还包含以下控制:

2.2.1 Forward

当你编辑信息之后,发送信息到服务器或浏览器

2.2.2 Drop

当你不想要发送这次信息可以点击 drop 放弃这条拦截信息

2.2.3 Interception is on/off

  这个按钮用来切换和关闭所有拦截。如果按钮显示 Interception is On,表示请求和响应将被拦截或自动转发根据配置的拦截规则配置代理选项。如果按钮显示Interception is off 则显示拦截之后的所有信息将自动转发。

2.2.4 Action

说明一个菜单可用的动作行为操作可以有哪些操作功能。

2.2.5 Comment field

为请求或响应添加注释,以便更容易在 History 选项卡中识别它们。
image.png

2.2.6 Highlight

为请求或响应添加颜色,可以在 history 选项卡和截获中更容易发现。

2.3 HTTP history

  Proxy>HTTP history 认为每个请求和响应。通过代理可以记录全部请求(request)和响应(response)。您可以过滤(filter)和注释(commend)这个信息来帮助管理它,并使用Proxy>HTTP history 来测试流程。History(代理历史)总在更新,即使你把 Interception turned off(拦截关闭),也可以在浏览不拦截的同时还监测应用流量的关键细节。

2.3.1 History Table

  表中显示已通过代理 HTTP 消息的所有请求,并且可以查看完整的你所做的任何修改和截获的信息的请求和响应。
  表中包含以下字段:
#(请求索引号)、Host(主机)、Method(请求方式)、URL(请求地址)、Params(参数)、Edited(编辑)、Status(状态)、Length(响应字节长度)、MIME type(响应的 MLME 类型)、Extension(地址文件扩展名)、Title(页面标题)、Comment(注释)、SSL、IP(目标 IP 地址)、Cookies、Time(发出请求
时间)、Listener port(监听端口)。
image.png
  您可以通过单击任何列标题进行升序或降序排列。如果您在表中双击选择一个项目地址,会显示出一个详细的请求和响应的窗口。或者右击选择 Show new history window
image.png

2.3.2 Display Filter

  Proxy histroy 有一个可以用来在视图中隐藏某些内容的功能,以使其更易于分析和你感兴趣的工作内容的显示过滤。
  History Table 上方的过滤栏描述了当前的显示过滤器。点击过滤器栏打开要编辑的过滤 器选项。该过滤器可以基于以下属性进行配置:
image.png
Request type
  Show only in-scope items--勾选则显示在范围内的项目,反之。
MIME type
  您可以设定是否显示或隐藏包含各种不同的 MIME 类型,如 HTML,CSS 或图像的响应。
Status code
  您可以设定是否要显示或隐藏各种 HTTP 状态码响应。
Search term
  您可以过滤对反应是否不包含指定的搜索词。您可以设定搜索词是否是一个文字字符串或正则表达式,以及是否区分大小写。如果您选择了"Negative search(消极搜索)”选项,然后不匹配的搜索词唯一的项目将被显示。
File extension
  您可以设定是否要显示或隐藏指定的文件扩展名的项目。
Annotation
  您可以设定是否显示使用用户提供的评论或仅亮点项目。
Listener
  你可以只显示特定的监听端口上接收的项目。测试访问控制时可能有用。
  如果设置一个过滤器,隐藏一些项目,这些都没有被删除,只是隐藏起来,如果你取消设置相关的过滤器将再次出现。这意味着您可以使用筛选器来帮助您系统地研究了大量代理的历史来理解各种不同的请求显示。

2.3.3 Annotations

  您可以通过添加注释和批注亮点代理历史记录项。这可能是有用的描述不同要求的目的,并标记了进一步查看。
两种方式添加亮点:
  1)使用在最左边的表列中的下拉菜单中突出显示单个项目。
  2)可以突出显示使用上下文菜单中的“亮点”项目的一个或多个选定的项目。
两种方法添加注释:
  1)双击相关条目,注释列中,添加或编辑就地评论。
  2)发表评论使用上下文菜单中的“添加注释”项目的一个或多个选定的项目。
除了以上两种,您也可以注释项目,它们出现在拦截选项卡,这些都将自动出现在历史记录表。
  当您已经注明想要的请求,您可以使用列排序和显示过滤器后迅速找到这些项目。

2.4 Options

设置代理监听、请求和响应,拦截反应,匹配和替换,ssl 等。

2.4.1 Proxy Listeners

  代理侦听器是侦听从您的浏览器传入的连接本地 HTTP 代理服务器。它允许您监视和拦截所有的请求和响应,并且位于 BurpProxy 的工作流的心脏。默认情况下,Burp 默认监 听 12.0.0.1 地址,端口 8080。要使用这个监听器,你需要配置你的浏览器使用127.0.0.1:8080 作为代理服务器。此默认监听器是必需的测试几乎所有的基于浏览器的所有
Web 应用程序。image.png

1)Binding
  这些设置控制 Burp 怎么代理监听器绑定到本地网络接口:
  Bind to port----这是将被打开侦听传入连接的本地接口上的端口。你将需要使用一个没 有被绑定被其他应用程序的闲置端口。
  Bind to address----这是 Burp 绑定到本地接口的 IP 地址。您可以绑定到刚刚 127.0.0.1 接口或所有接口,或任何特定的本地 IP 地址。  注意:如果监听器绑定到所有接口或特定的非 loopback 接口,那么其他计算机可能无法连接到该侦听器。这可能使他们发起出站连接,从您的 IP 地址发起,并以访问代理服务器历史的内容,其中可能包含敏感数据,如登录凭据。你应该只启用此当你位于一个受信任的网络上。
  BurpSuite 让您创建多个代理服务器的侦听器,并提供了丰富的控制自己的行为的配置选项。你可能偶尔需要进行测试时不寻常的应用,或与一些非基于浏览器的 HTTP 客户端进行合作,利用这些选项。

2)Request Handling
  这些设置包括选项来控制是否 BurpSuite 重定向通过此侦听器接收到的请求:
  Redirect to host - 如果配置了这个选项,Burp 会在每次请求转发到指定的主机,而不必受限于浏览器所请求的目标。需要注意的是,如果你正使用该选项,则可能需要配置匹 配/替换规则重写的主机头中的请求,如果服务器中,您重定向请求预期,不同于由浏览器发送一个主机头。
  Redirect to port - 如果配置了这个选项,Burp 会在每次请求转发到指定的端口,而不必受限于浏览器所请求的目标。
  Force use of SSL - 如果配置了这个选项,Burp 会使用 HTTPS 在所有向外的连接,即 使传入的请求中使用普通的 HTTP。您可以使用此选项,在与 SSL 相关的响应修改选项结合,开展 sslstrip 般的攻击使用Burp,其中,强制执行 HTTPS 的应用程序可以降级为普通 的 HTTP 的受害用户的流量在不知不觉中通过 BurpProxy 代理。
  注意: 每一个重定向选项都可以单独使用。因此,例如,可以将所有请求重定向到一个特定的主机,同时保留原来的端口和协议在每个原始请求中使用。隐形 BurpProxy 的支持允许非代理感知客户端直接连接到监听。

3)Certificate
  这些设置控制呈现给客户端的 SSL 服务器的 SSL 证书。使用这些选项可以解决一些使用拦截代理时出现的 SSL 问题:
  你可以消除您的浏览器的 SSL 警报,并需要建立 SSL 例外。
  凡网页加载来自其他域的 SSL 保护的项目,您可以确保这些均可由浏览器加载,而不需要 先手动接受每个引用的域代理的 SSL 证书。
  您可以与拒绝连接到服务器,如果接收到无效的 SSL 证书胖客户端应用程序的工作。
下列选项可用:
Use a self-signed certificate---- 一个简单的自签名 SSL 证书提交给您的浏览器,它总是导致SSL 警告。
Generate CA-signed per-host certificate---- 这是默认选项。安装后,BurpSuite 创造了一个独特的自签名的证书颁发机构(CA)证书,并将此计算机上使用,每次 BurpSuite 运行。当你的浏览器发出 SSL 连接到指定的主机,Burp 生成该主机通过 CA 证书签名的 SSL 证书。
  您可以安装 BurpSuite 的 CA 证书作为在浏览器中受信任的根,从而使每个目标主机的证书被接受,没有任何警报。您还可以导出其他工具或 Burp 的其他实例使用 CA 证书。
Generate a CA-signed certificate with a specific hostname--- 这类似于前面的选项。然而Burp 会产生一个单一的主机证书与每一个 SSL 连接使用,使用您指定的主机名。在进行无 形的代理时,此选项有时是必要的,因为客户端没有发送连接请求,因此 Burp 不能确定SSL 协议所需的主机名。你也可以安装BurpSuite 的 CA 证书作为受信任的根。
Use a custom certificate---- 此选项使您可以加载一个特定的证书(在 PKCS#12 格式)呈 现给你的浏览器。如果应用程序使用它需要特定的服务器证书(例如一个给定序列号或证
书链)的客户端应该使用这个选项。

4)Exporting and Importing the CA Certificate
  您可以导出您安装特定的 CA 证书在其他工具或 BurpSuite 的其他情况下使用,并且可 以导入证书 Burp 在当前实例使用。您可以选择要导出的证书只(用于导入到您的浏览器或其他设备的信任),或者你可以同时导出的证书及其私钥。
  注意: 您不应该透露的私钥证书给任何不可信的一方。拥有你的证书和密钥的恶意攻击者可能可以,即使你不使用 Burp 拦截浏览器的 HTTPS 流量。 您也可以仅通过访问http://burp/cert 在浏览器中导出证书。它使 HTTPS 请求您的浏览器相同的证书,但在一些移动设备上安装时,设备通过一个 URL 来下载它是有帮助的。

2.4.2 Interception Options

  设置控制哪些请求和响应都停滞用于查看和编辑在拦截选项卡。单独的设置将应用到请求和响应。在“Intercept”复选框确定是否有讯息拦截。如果它被选中,然后 Burp 应用配置的规则对每个消息,以确定它是否应该被拦截。
  个别规则可以激活或停用对每个规则的左边的复选框。规则可以被添加,编辑,删除,或使用按钮重新排序。规则可以在消息,包括域名,IP地址,协议,HTTP方法,URL,文件扩展名,参数,cookie ,头/主体内容,状态代码,MIME类型,HTML页面标题和代理的几乎任何属性进行配置侦听端口。您可以配置规则来只拦截项目的网址是目标范围之内的。可以使用正则表达式对定义复杂的匹配条件。
  规则按顺序处理,并且使用布尔运算符 AND 和 OR 组合。这些都与处理简单的“从左 到右”的逻辑,其中每个算子的范围,如下所示:(所有规则之前累积的结果)和/或(当前规则的结果)所有活动的规则在每封邮件进行处,并最终活动规则应用后的结果确定消息是否被拦截或转发的背景。“自动更新内容长度”复选框控件时,这已被用户修改是否Burp 自动更新消息的 Content-Length 头。使用这个选项通常是必不可少的,当 HTTP 主体已被修改。
  如果有需求,可以在请求结束时自动修复丢失或多余的新行。如果编辑请求不包含标题下面一个空行,Burp 会自动添加。如果与含有 URL 编码参数的身体的编辑请求包含任何换行符在身体的末端,Burp 就会删除这些。这个选项可以是有用的纠正,而手动编辑在拦截视图的要求,以避免发出无效的请求向服务器发出的错误。

2.4.3 Response Modification

  设置用于执行自动响应的修改。您可以使用这些选项通过自动重写应用程序响应的
HTML 来完成各种任务。
下列选项在数据删除客户端控件可能是有用的:

  1. 显示隐藏的表单字段。(有一个子选项,以突出强调取消隐藏栏在屏幕上,便于识别。) 启用已禁用的表单域;
  2. 删除输入字段长度限制;
  3. 删除的 JavaScript 表单验证;

下列选项可用于禁止客户端逻辑用于测试目的(注意,这些特征并非设计用来作为NoScript 的的方式进行安全防御)有用:

  1. 删除所有的 JavaScript;
  2. 删除<object>标记;

下列选项可用于提供对受害用户的流量在不知不觉中被通过 BurpSuite 代理sslstrip 般的攻击。您可以在与听者选项强制 SSL 的传出请求,以有效地从用户的连接剥离 SSL 一起使用这些:

  1. 转换 HTTPS 为 HTTP 的链接;
  2. 删除 cookie 安全标志;

2.4.4 Match and Replace

  用于自动替换请求和响应通过代理的部分。对于每一个 HTTP 消息,已启用的匹配和替换规则依次执行,以及任何适用的替代品制成。规则可以分别被定义为请求和响应,对于消息头和身体,并且还特别为只请求的第一行。每个规则可以指定一个文字字符串或正则表达式来匹配,和一个字符串来替换它。对于邮件头,如果匹配条件,整个头和替换字符串匹配留空,然后头被删除。如果指定一个空的匹配表达式,然后替换字符串将被添加为一个新的头。有可协助常见任务的各种缺省规则 - 这些都是默认为禁用。匹配多行区域。您可以使用标准的正则表达式语法来匹配邮件正文的多行区域。
  在替换字符串,组可以使用其次为索引$引用。所以下面的替换字符串将包含被匹配在上述正则表达式,该标记的名称:
image.png

2.4.5 SSL Pass Through

  用于指定目标 Web 服务器为其 Burp 会直接通过 SSL 连接。关于通过这些连接的请求或响应任何细节将在代理拦截视图或历史。通过 SSL 连接传递可以在这情况下是不能直接消除了客户端的 SSL 错误是非常有用 - 例如,在执行 SSL 证书钉扎的移动应用程序。如果应用程序访问多个域,或使用 HTTP 和 HTTPS
连接的混合,然后通过 SSL 连接到特定问题的主机仍然可以让您以正常方式使用 Burp 其他交通工作。
  如果启用该选项来自动添加客户端 SSL 协议失败的项目,然后 BurpSuite 会在客户端失败检测 SSL 协议(例如,由于不承认 BurpSuite 的 CA 证书),并会自动将相关的服务器添加到 SSL 通讯列表。

2.4.6 Miscellaneous

  控制 Burp 代理的行为的一些具体细节。下列选项可用:
  Use HTTP/1.0 in requests to server -
该选项控制 BurpSuite 代理是否强制在请求目标服务器的 HTTP 1.0 版。默认设置是使用任何的 HTTP 版本所使用的浏览器。然而,一些遗留服务器或应用程序可能需要 1.0 版本才能正常工作。
   Use HTTP/1.0 in responses to client - 目前所有的浏览器都支持这两个版本 1.0 和 HTTP1.1 。从 1.0 版本开始已经减少了一些功能,迫使使用 1.0 版本有时会很有用,以控制浏览器的行为的各个方面,例如防止企图执行 HTTP 流水线。
  Set response header “Connection:close” - 这个选项也可能是有用的,以防止 HTTP 流水线在某些情况下。
  Unpack gzip / deflate in requests - 某些应用程序(通常是那些使用自定义客户端组件) ,压缩在请求消息体。该选项控制 BurpProxy 是否自动解压缩压缩请求主体。请注意, 某些应用程序可能被破坏,如果他们期望的压缩体和压缩已通过 Burp 被删除。
  Unpack gzip / deflate in responses - 大多数浏览器接受的 gzip 和响应紧缩压缩的内容。该选项控制 BurpSuite 代理是否自动解压缩压缩响应机构。请注意,您可以经常防止服务器试图通过删除请求(可能使用 BurpProxy 的匹配和替换功能)的 Accept-Encoding 头压缩的响应。
  Disable web interface at http://burp - 如果你不得不配置你的听众接受无保护的接口上的连接,并希望阻止他人接触到 Burp 浏览器控件,此选项可能有用。
  Suppress Burp error messages - 当某些错误时,默认情况下BurpSuite 返回有意义的错 误信息到浏览器。如果你想在隐身模式下运行 Burp,履行人在这方面的中间人攻击的受害者用户,那么它可能是有用的抑制这些错误信息来掩盖一个事实,即 Burp 是参与。
  Disable logging to history and site map - 此选项可以防止 Burp 从记录任何请求到代理服务器的历史或目标站点地图。如果您使用的是 Burp 代理对于一些特定用途,如身份验证到上游服务器或进行匹配和替换操作,并且要避免产生内存和存储开销采伐牵扯它可能是有用的。
  Enable interception at startup- 此选项可让您设定是否在 Burp 时启动代理截获应该启用。您可以选择始终启用拦截,始终禁用拦截,或者从 Burp 上次关闭恢复设置。

3、Target

############### ** 手册还没有更新完毕,后续章节会尽快附上 ** ##############

打赏
支付宝 微信
上一篇 下一篇