Burp-Suite-最详细教程使用手册 - 图文 下载本文

Burp-Suite-最详细教程-翻译版

目 录

目 录 ................................................................................................................................................ 2 简介 .................................................................................................................................................. 3 第一章 Burp Suite工具箱 ............................................................................................................ 3 第二章 Burp Suite的使用 ............................................................................................................ 3 第三章 Burp Proxy Help ............................................................................................................... 34 第四章 Burp Spider Help .............................................................................................................. 49 第五章 Burp Scanner Help ............................................................................................................ 55 第六章 Burp Intruder Help ............................................................................................................ 70 第七章 Burp Repeater Help ........................................................................................................... 94 第八章 Session Handler Help ........................................................................................................ 97 第九章 Burp工具的集成(Integration with Burp tools) .............................................................. 108

简介

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

Burp Suite能高效率地与单个工具一起工作,例如:

一个中心站点地图是用于汇总收集到的目标应用程序信息,并通过确定的范围来指导单个程序工作。

在一个工具处理 HTTP请求和响应时,它可以选择调用其他任意的 Burp工具。例如,代理记录的请求可被 Intruder用来构造一个自定义的自动攻击的准则,也可被 Repeater用来手动攻击,也可被 Scanner用来分析漏洞,或者被 Spider(网络爬虫)用来自动搜索内容。应用程序可以是”被动地”运行,而不是产生大量的自动请求。Burp Proxy把所有通过的请求和响应解析为连接和形式,同时站点地图也相应地更新。由于完全的控制了每一个请求,你就可以以一种非入侵的方式来探测敏感的应用程序。

当你浏览网页(这取决于定义的目标范围)时,通过自动扫描经过代理的请求就能发现安全漏洞。

IburpExtender是用来扩展 Burp Suite和单个工具的功能。一个工具处理的数据结果,可以被其他工具随意的使用,并产生相应的结果。

第一章 Burp Suite工具箱

Proxy——是一个拦截 HTTP /S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。

Spider——是一个应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。 Scanner[仅限专业版]——是一个高级的工具,执行后,它能自动地发现 web应用程序的安全漏洞。

Intruder——是一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用 fuzzing技术探测常规漏洞。

Repeater——是一个靠手动操作来补发单独的 HTTP请求,并分析应用程序响应的工具。

Sequencer——是一个用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。

Decoder——是一个进行手动执行或对应用程序数据者智能解码编码的工具。 Comparer——是一个实用的工具,通常是通过一些相关的请求和响应得到两项数据的一个可视化的”差异”。

第二章 Burp Suite的使用

当 Burp Suite运行后,Burp Proxy开起默认的 8080端口作为本地代理接口。通过置一个 web浏览器使用其代理服务器,所有的网站流量可以被拦截,查看和修改。默认情况下,对非媒体资源的请求将被拦截并显示(可以通过 Burp Proxy选项里的 options选项修改默认值)。对所有通过 Burp Proxy网站流量使用预设的方案进行分析,然后纳入到目标站点地图

中,来勾勒出一张包含访问的应用程序的内容和功能的画面。在 Burp Suite专业版中,默认

情况下,Burp Scanner是被动地分析所有的请求来确定一系列的安全漏洞。 在你开始认真的工作之前,你最好为指定工作范围。最简单的方法就是浏览访问目标应 用程序,然后找到相关主机或目录的站点地图,并使用上下菜单添加 URL路径范围。通过配置的这个中心范围,能以任意方式控制单个 Burp工具的运行。

当你浏览目标应用程序时,你可以手动编辑代理截获的请求和响应,或者把拦截完全关闭。在拦截关闭后,每一个请求,响应和内容的历史记录仍能再站点地图中积累下来。和修改代理内截获的消息一样,你可以把这些消息发送到其他 Burp工具执行一些操作:你可以把请求发送到 Repeater,手动微调这些对应用程序的攻击,并重新发送多次的单独请求。

[专业版]你可以把请求发送到 Scanner,执行主动或被动的漏洞扫描。

你可以把请求发送到 Intruer,加载一个自定义的自动攻击方案,进行确定一些常规漏洞。

如果你看到一个响应,包含不可预知内容的会话令牌或其他标识符,你可以把它发送到Sequencer来测试它的随机性。

当请求或响应中包含不透明数据时,可以把它发送到 Decoder进行智能解码和识别一些隐藏的信息。

[专业版]你可使用一些 engagement工具使你的工作更快更有效。

你在代理历史记录的项目,单个主机,站点地图里目录和文件,或者请求响应上显示可以使用工具的任意地方上执行任意以上的操作。

可以通过一个中央日志记录的功能,来记录所单个工具或整个套件发出的请求和响应。 这些工具可以运行在一个单一的选项卡窗口或者一个被分离的单个窗口。所有的工具和套件的配置信息是可选为通过程序持久性的加载。在 Burp Suite专业版中,你可以保存整个组件

工具的设置状态,在下次加载过来恢复你的工具。

2.1 Burp菜单

这个菜单包含了以下描述的一系列关键功能和配置选项。

2.1.1搜索

[专业版]在 Burp菜单上选择”search”后,会打开一个用起来非常简单的搜索对话框。你可以设定以下搜索参数: 搜索表达式:

搜索是否区分大小写

搜索的是简单的文本还是正则表达式 搜索范围是否有限制范围

搜索的结果是否随着 HTTP消息的处理而动态更新

是在哪种 HTTP消息的位置上搜索(请求 vs响应,消息头 vs消息主体)使用那种工具进行搜索,当你单击\时,搜索开始,在一个有序的表格里,将显示出每个与搜索相关的关键内容细节,在一个预览窗格里,你能看到所有的请求和响应,也包括匹配你强调的搜索项。通常上下文菜单可用于指定发起攻击的具体项目,也可将他们发送到其他工具里做进一步的分析:

请注意,如果你通过上下文菜单进行对目标站点地图的搜索,那么这次搜索将被具体化到一些选定的分支上。

2.1.2保存和恢复状态

[专业版]下面的帮助说明了保存和恢复状态的过程,和一些通常使用的情况。 保存状态

能保存的项目有:

包含通过 Proxy和 Spider的所有内容的目标站点地图 Proxy历史记录 Scanner发现的问题

Repeater选项卡的内容和历史记录 所有套件工具的配置信息

在 Burp菜单选择” save state”,会启动一个向导,你可以定义要保存的状态和配置信息:

这时你来选择要输出的文件,剩下的由 Burp来完成。当 Burp正在保存状态时,你可以继续使用它,如果你尝试对 Burp正在保存的数据执行操作,可能会遇到一些短暂的延时,这样做的目的是为了防止数据损坏。

显而易见,由于保存的文件包含在你正在保存的工具内不断积累的请求和响应,所以这个文件会越来越大。实际上,保存或恢复几个小时的测试通常会再 1到 2分钟完成。在执行保存之前,你可以通过删除不必要的站点地图和代理历史记录的方式,来加快和精简这个过程。

2.1.3恢复状态

在 Burp菜单选择”restore state”,会启动一个向导,在这里你可以自定义要恢复的状态和配

置的选项。首先,你要选择先前保存的文件。Burp会分析这个文件识别其中的内容(注意每个保存的文件都能包含任意组合工具的状态和配置信息)。对于每种保存的状态和配置信息,Burp会让你选择是否想要恢复,以及是否想要增加或者替换工具耳朵现有状态。

Burp会恢复你的选择,然后继续工作。当

Burp正在恢复状态时,你可以继续使用它,如果你尝试对 Burp正在恢复的数据执行操作,可能会遇到一些短暂的延时,这样做的目的是为了防止数据损坏。

使用场合

对渗透测试人员来说,保存恢复工具状态和配置信息有巨大的好处:

你可以在每天结束的时候保存你的工作,然后在第二天早上无缝地恢复恢复你的工作。 你可以备份整个工作的关键测试信息,以防系统崩溃。 定制方案完成后,你可以存储一个完整的归档文件的所有积累信息,使你能在稍后重新打开继续你的工作,回答客户的问题或者重新测试同一个问题。

映射出应用程序内容的任务可以由顾问们来一起分担,这些的小的网站地图可以逐渐合并到一个中去,这些都可以被所有的顾问共享。

团队的领导可以优化一个特定的定制 Burp配置,包括细小的目标范围的界定,以及把这种配置直接传递给其他团队成员开始测试。

你可以为不同的任务设计相应的配置模板,以备将来使用,这样可以在他们之间简单地切换。

2.1.4记录设置

在加载不同的软件时,”remember setting”选项决定了是否让 Burp记住配置信息的设置。你可以让 Burp对所有软件都记住设置,也可以对选择的单个软件。

“restore defaults”选项把 Burp Suite或者单个工具的配置设置重置到它们的默认值。

2.1.5精简模式

如果这个选项被选中,接下来 Burp将以精简模式运行,这时可用的工具只有: Burp Proxy,Intruder,和 Repeater。在这个模式下运行,对系统资源消耗很低,这是为了一些喜欢简 单轻便工具的用户而设计的。

2.1.6目标站点地图

中央站点地图汇聚了所有 Burp收集的关于你正在攻击的应用程序的信息。这包括了直接通过 Proxy的请求,以及根据这些请求得到的响应的分析结果,和 Spider发现的所有内容。当你浏览一个应用程序时,会为你映射出大量的内容,甚至远远超过你的要求。例如:

已请求的项目会以黑色显示;那些也被 Burp推断出,但还未被请求过的以灰色显示。在默认情况下,那些让渗透测试人员不感兴趣的项目是被过滤掉而不被显示的,但种行为是可以被修改的(这将在下面介绍)。

站点地图的界面基本上像一个图形化的电子邮件客户端。一个主机和目录树显示在左侧。在数视图中选择一个或多个节点会导致下面的这些节点的所有项目以表格的形式显示在右上方。表格里面包含了项目的关键细节(URL,编码方式,页面标题等等)和能按任意列排序的项目(单击任意列的标题按降序排列,按住 shift单击是升序排列)。选中表格中的一个项目,相关的请求和响应就会显示在右下角的预览窗格里。这个预览窗格里包含所有和 Burp里相似的功能—消息头和参数的分析,文本搜索,媒体渲染等等。

当显示出你的目标的信息全部收集完毕时,站点地图通过随时出现的上下文菜单使你能控制发起特定的攻击。例如,你可以选择一个主机或者树视图的文件夹,以及执行树视图的整个分支上的指令,如爬虫搜索和扫描:

同样地,你可选择视图树或表格中的单个文件,并把相关的请求发送到其它工具,如 Intruder或者 Repeater。如果浏览器没有请求过这一项,Burp就会根据 URL和从目标域接受到的cookies为这一项构造出一个默认请求:

[专业版]你可以通过上下文菜单访问各种定制工具,如搜索注释和脚本,分析你的目标 web站点,调度任务等等。

在视图表格里,你可以对单个或多个的项目进行注释,对他们进行添加注释和强调:

你可以使用表格最左列的下拉菜单设置单个项目醒目:

你可以通过双击来编辑单元格的方式就地对单个项目进行注释:

另外,如果你想一次对多个项目进行注释,你选择相关的项目,并使用上文菜单来添加注释和申请加亮:

当你已经注释出了自己感兴趣的项目时,可以通过列排序并和显示过滤来快速找到这些项目。

站点地图显示的内容是有效地进入基础数据库的一个视图,并且你可以配置过滤器以决定在地图上显示那些项的基础数据。一些应用程序包含大量的内容,如:图片,CSS等,这些通常在视图上是隐藏的。在站点地图的上方有一个过滤器栏。单击这里,会有一个弹出栏,让你能精确地设置在地图上显示那些内容:

你可以选择只显示参数有请求,或者在当前的目标范围内。你可以通过 MIME类型,HTTP的状态码和文件扩展名进行过滤。如果你设置一个过滤器来隐藏一些项,这些项不会被删除,仅仅是隐藏了,如果你解除相关的过滤器,它们会重新出现。这就意味着你可以使

用过滤器来帮助你系统地研究一个复杂的网站地图,了解各种不同兴趣的内容。

[专业版]你可以对指定的搜索词进行过滤,在请求和响应以及可用的用户注释中包含的这些表达式的项都将被显示出来。

除了视图里的过滤内容,你有时可能会想彻底删除它。例如,如果你浏览到目标域外,你将会在 Burp里积累了一些你不需要的数据。在这种情况下,你可以使用站点地图的上下文菜单永久地删除多余的项目。例如,你可以选择多个主机或者视图树里的文件夹或者表格视图,并彻底删除他们:

2.1.7比较站点地图

你可以使用 Burp来对比两个站点地图,并突出其差异。这个功能可以通过各种方式来帮助寻找不同种类的访问控制漏洞,并确定一个大型的应用程序的哪一块需要进行人工密切检查。此功能的一些典型使用情况如下:

你可以使用不同权限级别的账号来映射应用程序,并比较得到的结果来确定一个功能是对其中的一个用户而不是其他的用户是可见的。

你可以使用一个高权限的账号来映射应用程序,然后使用一个低权限的账号来重新请求整个网站地图,以确定是否有访问权限的限制。

你可以使用两个相同权限的不同账号来映射应用程序,以确定哪些是需要特定的用户标识符来进行访问的敏感资源的事件,并确定是否正确地划分了每个用户的数据。

你可以通过在主站点地图上的上下文菜单来使用”compare site maps”功能。打开一个向导,需要你配置要比较的站点地图的细节,以及比较的方法。当你选择了需要比较的站点地图,可以选择下面的这些选项:

显示在 Burp的目标选项中的当前站点地图。 从一个以前保存 Burp文件加载过来的站点地图。

以不同的 session context,对上面的两者进行重新请求。 你可以选择包含所有站点地图的内容,也可以限制选定范围内的项目。如果你选择以一个不同的 session context,特别重要的是不要包括会破坏上下文的请求—例如登陆,注销,用户模拟功能等等。在执行比较时,Burp通过对第一个站点地图的每一个请求与第二个站

点地图的请求进行对比,反之亦然。通过对匹配请求的响应进行对比,来查找出所有的差异。对站点地图内不匹配的项分别进行标记为删除或添加。这样高度可配置的确切过程,允许你定制出针对目标应用程序的比较功能。下面列出了 Burp怎样比较两个站点地图的配置选项:

在大多数情况下,默认的选项能很好的工作,并对比在查询的字符串和消息里面的 URL文件路径,HTTP方法和参数的名称的请求。对于一些应用程序,你需要修改这些默认选项,以确认能准确地对请求进行匹配。例如,一个应用程序在同一个 URL上进行不同的操作,通过查询的字符串值来指定操作,你需要按他们的名字和参数的值匹配他们的请求。

下面显示的是怎样是 Burp请求与响应相匹配的设置选项:

同样,在大多数情况下可以使用默认设置。这些选项忽略了没有太大价值的 HTTP消息头和表单域,也忽略了空白响应。默认选项是减少无关噪声响应带来影响而设计的,让你能更容易地集中精力在差异上。下面显示了一个简单的站点地图对比结果。显示出在管理员权限下和用户权限下发出的请求映射出的站点地图。经过分析后,两个站点地图的不同点,用不同颜色标出,并显示出两者之间的添加,删除,修改(如果请求过整个第一个站点地图,在地图里将不会有添加和删除项)。对于修改项,表格里有若干不同列,来表示由第一个站点地图内容修改为第二个站点地图内容。当你选择其中的一项时,另一个站点地图里的相关的项也被选中,响应里面的修

改点会被加亮:

要想分析出站点地图的对比结果,就需要明白指定应用程序的上下文和意义,以及人的理解能力。例如,上面的截图显示了不同用户访问主页时得到的不同响应。这两个响应显示出了登陆用户的不同描述,管理员权限的用户有一个附加的菜单项。这些不同都可以预见的,他们对应用程序访问控制的有效性没有影响的,因为他们仅仅只在用户界面上。

下面的截图显示了两种用户请求顶级管理页面时得到的响应。这里管理员用户可以看到可用的菜单选项,而普通用户只能看到”not authorised”消息。这些不同显示了访问控制得到了正确的配置:

下面的截图显示了每个用户在请求具有管理员功能的”list users”得到的响应。这里响应相同说明应用程序是有漏洞的,因为普通用户是不应该能使用这种功能,在他们界面里没有任何指向它的连接:

通过这个示例显示出,简单地对站点视图树的探索和查看项目的不同点,不足以评估应用程序的访问控制的有效性。两个想同的响应表明可能会有一个漏洞 (例如,管理功能暴露的敏感信息),也许会是安全的(例如,在显示登录用户个人资料的页面上),所有的这些情况可以共存的,甚至在同一个应用程序上。这就是为什么全自动化工具在探测访问控制漏洞过程中效率是如此的低下。

因此,Burp需要你密切地检查应用程序的功能,这不会减轻你的任务,对每一种情况都作出评估,看看访问控制是否正确的使用。站点地图的比较功能是一个尽可能自动化的过程,在一个清晰的表格里会给出你所需要的信息,并让你通过自己对应用程序的了解来发现任何的实际漏洞。

2.1.8目标范围:

这个”scope”选项是让你告诉 Burp,以什么样扫描水准,以及哪些主机和 URL来进行你的工作。你可以把目标范围大致想象成你有兴趣的并准备攻击的选项。

目标范围以许多方式影响单个 Burp工具的行为,例如: 你可以设置过滤器只显示范围内的项。

你可以告诉代理只拦截范围内的请求和响应。 网络爬虫只会跟踪范围内的链接。

在 Burp Suite专业版中,你可以启动自动扫描范围项内的漏洞。 你可以配置 Intruder和 Repeater重定向跟踪任何范围内的 URL。

通过告诉 Burp你的目标是什么,可以确保 Burp在你指定有兴趣的攻击目标后,以适当的方式进行一系列此类的举动。在任何情况下,你都可以随时微调目标范围和单个相关工具的工作方式,如果需要,你可以精准地控制 Burp的一切。然而 Burp-wide宽度设定提供

了一种既快又简单的方式,在你开始工作之前,来告诉 Burp,游戏的规则是什么和什么是禁区,以及什么有价值的。

目标范围的配置功能非常强大,却很简单。在” scope”选项卡里的用户界面里,你可以自定义目标范围包括哪些或者不包括哪些的规则。对于每条规则,你都可以定义以下字段:

协议—HTTP,HTTPS,或者其他的主机—这可以是一个正常的主机名正则表达式,也可以是标准格式的 IP区间段,例如,10.1.1.1、24或者 10.1.1-20.1-127。如果主机字段是空的,规则就会认为是任意主机。

端口—这是一个匹配正常端口号的正则表达式,如果为空,则认为是任意端口。 文件—这是一个匹配文件部分 URL的正则表达式,如果为空,则认为是任意文件。 当 Burp决定评估一个在目标范围内的 URL时,如果 URL匹配包含规则其中一条并不符合任意一条不包含规则,这个 URL将被视为在目标范围内。这使你可以自定义一般范围的内的特定主机和目录,但排除该范围内特定的子目录和文件。例如,下面这样定义的目标范围会匹配 http://www.myapp.com和https://staging.myapp.com以及在 https://www/myadd.com/admin目录下的内容的表达式,还有任何包含”logout”表达式的 URL。

像上面描述那样直接设置范围规则对许多用户来说,显得不太友好。有一个更简单的方法,就是让 Burp根据你在站点地图或其它地方使用上下文菜单给出的直观说明来为自己定义规则。在你开始探测应用程序前,你需要简单地浏览目标页面,这样才能让它显示在站点地图上。然后,你可以选择一个或多个主机和目录,并通过上下文菜单把他们在范围内包含或排除。这个过程非常简单,大多情况下,这会让你迅速地定义出满足你测试的所有规则:

2.1.9套件选项

这个选项卡里包含了不针对任何单一工具的 Suite-wide设置,他们分为包含许多模块的子标签。

2.1.10连接选项

这个标签里包含了控制 Burp怎样处理网络连接的选项,认证,代理服务器,重定向,超时,主机名解析。

这些控制 Burp Suite在连接目标 web服务器时是否使用认证。可以为不同的主机配置

不同的认证类型和验证。支持的类型有:basic,NTLMv1,NTLMv2和摘要式身份认证。域字段和主机名字段仅用在 NTLM认证。在遇到认证错误时,”prompt for credentials”选项会弹出一个互动窗口来提示错误。

这个设置允许你配置规则来为不同域的主机指定不同的代理。

上面的这个设置会使 Burp直接地与 staging.intranet.corp.com进行会话。使用一个没有任何验证的内部代理服务器访问*.intranet.crop.com,对所有的访问,包括公共互联网,都使用一个有网关认证的 web代理。你可以在特定的目标主机上使用标准通配符。规则是按顺序使用的,第一条符合你连接的web服务器的规则将被使用。如果没有找到匹配规则,Burp将默认不使用代理进行连接。如果需要,你可以为每一个上游代理指定一个认证类型和验证。支持的认证类型:basic,NTLMv1,NTLMv2和摘要式身份验证。域字段和主机名字段只对 NTML认证有效。

这些设置是让你配置 Burp为所有代发的连接指定一个 SOCKS代理。

这些设置决定了各种网络任务的最大延时。”normal”项是最多网络连接有效的设置,并决

定了 Burp Suite在放弃一个请求并记录超时前等待的最长时间。”read til close”设置是用在处理响应过程的,并且这个响应包含一个没有Conntent-Length或者 Transfer-Encoding的HTTP消息头。在这种情况下,在确定传输完成前,Burp Suite会等待一个特殊间隔。”domain name resolution”设置 Burp Suite成功解析域名的频率。如果目标主机地址频繁地变化,就需要设置一个适当低的值。”failed domain name resolution”设置决定了 Burp Suite重新尝试解析没有成功解析的域名的频率。

这些设置让你指定特殊的主机名到 IP的映射,并覆盖由操作系统提供的 DNS解析。当主机文件被修改,使用无代理感知后客户端组件为传输提供不可见的代理时,这个功能能确保正确地向前转发请求。

这些设置是控制处理从服务器接收到的 HTTP 100的连续响应。这会发生在这种情况下,当你向服务器提交一个 POST请求后,在请求完全传送完之前,服务器会返回一个响应。如果选择”understand 100 Continue responses”,Burp Suite会跳过中间响应,并为响应信

息解析真正的消息头像状态编码和内容类型。如果选择”remove 100 Continue headers”,在这些服务器的响应经过单个工具前,Burp Suite会清除任意的一个响应的消息头。

2.1.11 Sessions选项

这个选项是让你配置 Burp的会话处理和宏功能的。要想了解这些功能的更多信息,请查看会话处理帮助。

2.1.12 显示选项

这个选项卡里包含了控制怎样显示 HTTP请求和响应的选项。

这些设置控制着用于显示 HTTP消息的字体,以及在请求和响应中,是否执行加亮语法。

在显示 HTTP请求和响应时,这些设置控制 Burp怎样处理字体设置。默认情况下,在每条响应中,能自动识别字体并正确显示出来的。在开起 Burp时,就避免了需要在命令行上设置一个特定的字体,在 Burp里的同一个实例里,允许的你的工作中有多种不同字体的内容。在上面的选项里,你可以设置一个特殊的字体覆盖默认的值,或者告诉 Burp显示没有字体处理的原始字节。

注意有些字符不是被所有字体支持的。如果你想使用一个非拉丁字形的字符,你需要首先去尝试一个系统字体,如:Courier New或者 Dialog。

在 Burp Suite里的显示 HTTP响应的任意位置都有可能呈现出 HTML内容,因为他会出现你的浏览器里。这些选项控制BurpSuite是否要添加一些HTTP来完全呈现出HTML内容(如嵌入的图像)。使用这个选项涉及到Burp Suite执行速度和HTML内容质量的权衡。

2.1.13 SSL选项

这个标签里包含了怎样使用 SSL的选项,以及服务器提交的 SSL认证的信息。

这个选项使你你能够配置一个客户端 SSL认证(PKCS12格式),这被用在目标 HTTP服务器

要求客户端提供证书认证时候。当没必要使用一些客户端认证时,你可以配置 Burp允许不太安全的重复协商。

有时,你在与某些 web服务器进行 SSL连接协商时运到困难。Java的 SSL栈里有一些捣蛋

鬼,不会与其他不明服务器设置兼容的。为了帮助你排除这个故障,在进行 SSL协商时,Burp允许你指定服务器提供的是哪一种协议。

这里要注意 Burp本身采用了一些 SSL问题的解决方法,如果用你配置这些协议协商失败,Burp会尝试采用其他能用的组合协议。因此你不会用到测试服务器支持哪种协议的功能。在 SSL协商时,你可以配置 Burp使用所有的密码套件。这个选项一般不会用到,但当尝试连接一些不常见配置的 SSL栈时,它会非常有用。

这个信息面板包含了从目标 web服务器接收到的所有 X509证书的细节。双击表中的一个项就可以显示出整个证书的细节。

2.1.14杂项

这个选项包含了一些杂项设置:日志记录,备份,临时文件存放位置,预定任务。

这些设置控制网络请求和响应的日志。可以针对一个工具或者整个Burp Suite进行配置日志。

[专业版]这些设置让你通过配置 Burp来保存所有工具状态的备份,和在一个可配置的时间间隔内进行后台配置,以及选择性退出。这些设置仍然能够加载到 Burp,所以你可以把 Burp设置成实时保存到一个临时目录下,这样在你使用 Burp的每一时刻,都会有你工作的备份副本。

这些选项是让你设置 Burp临时文件保存的目录路径。这允许你指定一个不同的路径,如果需要,可以指定为受限访问。在下次 Burp启动的时候,这些设置才会生效。

[专业版]在规定的时间间隔内,你可以使用任务调度来自动地开始和停止某些任务。例如,上面的设置显示:在凌晨 2点开始扫描目标,并在每天的工作时间段内暂停。

你可以通过出现在整个 Burp范围内的上下文菜单来创建任务,也可以通过面板上的”newtask”按钮来创建。开始会有一个向导出现,让你来配置任务的细节和时序。提供了各种不同类型的任务:

你可以配置每一项任务是一次性的还是过一段时间就重复执行。

2.1.15定制工具

[专业版]一些工具就是为了帮助使你的工作更快更效率的完成而存在的。可以通过显示在Burp整个范围内的上下文菜单来找到他们:

2.1.16搜索

具体查看搜索帮助。

注意如果你在目标站点地图上开始一个搜索(和 Burp菜单不一样),那么将指定在选择中的站点地图分支上进行搜索。

2.1.17查找注释和脚本

你可以使用这个功能来搜索部分或整个站点地图内的注释和脚本。搜索结果窗口内会显示出所有包含脚本和注释的 Burp工具得到的响应。在预览表格内会显示出选中项的完整的请求和响应,相关的项会被自动加亮,并同时提取到他们的标签:

你可以使用”export”按钮把所有的脚本或注释保存的文件或粘贴板上。可选择性地加强重

复出现的项。

2.1.18查找引用

任何地方你都能看到 HTTP请求,URL,域名等等。你可以在所有的 Burp工具使用”findreferences”来搜索链接到这些项的 HTTP响应。搜索结果的窗口显示链接到选中项的所有Burp工具的响应。当你查看其中的一个搜索结果时,响应会自动加亮显示出链接引用发生的地方:

当搜索链接时,注意这个功能会把本地 URL当做一个前缀来处理。因此如果你选择一个主机,你找到所有对这个主机的引用;如果你选择一个文件夹,你会找到所有对这个文件夹或更深目录的引用。

新的”find references”和老版本的 Burp Spider中的”linked from”列表的服务目的是一样的,但它更强大一些。

2.1.19分析目标

这个功能是用来分析一个目标 web应用程序,并告诉你他有多少静态和动态的 URL,以及每个 RUL有多少参数。这能帮助你评估出需要花多少精力来完成相关的渗透测试,还帮助你决定把注意力放在测试的那一块。

要想使用这个功能,要选择一个或多个主机或者站点地图的分支,然后使用上下文菜单运行它。汇总后的信息就是这样的:

并且你可以向下挖掘出更多的 URL细节:

你可以把所有的信息以 HTTP报告的形式输出,你可以把这些信息附加到客户端的建议和报告中来显示你覆盖的攻击面。

注意:(1)这个功能只能用来分析站点地图已经捕获的内容,所以在你运行它之前,必须保证你已经浏览或追踪到了应用程序的所有功能和内容。

(2)如果 URL或消息体内没有任何参数的话,URL将被认为是”静态”;然而应用程序产生的 URL响应可能会是动态的。

2.1.20探索内容

你可以使用这个功能来发现一些和你浏览或追踪到的可见内容无关的一些内容和功能。Burp使用许多技术来发现内容,有猜测名字,网络爬虫,以及在应用程序中使用约定命名来推断。这些功能是高度可配置的,下面显示出了一些可用的选项卡:

target:这个选项控制着开始探索的目录。在会话期间只有这个路径和它的子目录才会被求。

你可以选择探索文件或目录或两者,以及探索子目录的深度。

test case generation:当要向探索内容发送请求时,Burp就会使用由这些选项控制的文件和目录名字。和内置列表一样,Burp能获得在应用程序任何地方使用的名字,并且在其他地方重复它们,还可以通过探索项来构造名字,通过循环值得到文件名中包含的数字。file extensions:你可以指定一个用来测试可能文件名字的文件扩展名列表。Burp能通过观察应用程序使用的扩展名来获得扩展名,并用每一文件名来测试这些扩展名。当有一个文件符合时,Burp就会尝试一个指定的有文件名组成的变种扩展名列表,例如检查老的或备份版本里的同一文件。

Discovery engine:你可以控制使用多少线程来进行内容探索和追踪,以及处理的文件名字是否敏感,以及在 Burp的主站点地图怎样进行探索互动会话的(在套件的目标选项卡里)。当你配置完探索会话时,你可以在控制选项上启动它了,这里提供了执行动作的运行时间信息。这项工作被分成了无数个分散的小任务,他们的优先权取决于快速发现新内容的可能性,随着内容的确定,新任务会递归地产生:

这个探索会话使用的是它自己的站点地图,显示出所有的发现的在定义范围内的内容。如果你是通过配置 Burp这样做的,接下来新发现的项会被自动地添加到主站点地图里。

2.1.21任务调度

可以查看任务调度帮助。

2.1.22手动模拟测试

这个功能不会明显地提高你的效率,但有时你会发现它还是有用的。你可以使用它让

Burp进行人工模拟测试活动,通过向目标应用程序里的随机 URL和参数发送常规的测试有效载荷。Burp不会处理响应,所以在这情况下你不会发现漏洞。但是如果你认为有些人可能会来查看应用程序的日志来确定你在做的事,当你在进行一个长时间的午餐,健身房会议,或者其他一些使你不能分身的情况下,你可以使用这个功能。

复活节彩蛋,有人吗? 消息编辑器 (略)

可扩展性 (略)

第三章 Burp Proxy Help

3.1 什么是 Burp代理

Burp代理是一个用来攻击和调试 web应用程序的交互式的 HTTP /S代理服务器。他就像一个在浏览器和目标服务器之间的中介人,并允许用户拦截,查看和修改两个方向上的原始流量。

Burp代理允许你通过监视和操纵应用程序传输的关键参数和其他数据来查找和探索应用程序的漏洞。通过以恶意的方式修改浏览器的请求,Burp代理可以用来进行攻击,如:SQL注入,cookie欺骗,提升权限,会话劫持,目录遍历,缓冲区溢出。拦截的传输可以被修改成原始文本,也可以是包含参数或者消息头的表格,也可以十六进制形式,甚至可以操纵二进制形式的数据。在Burp代理可以呈现出包含 HTML或者图像数据的响应消息。

除了每一个请求的操纵外,Burp代理保持着一个完整的历史记录,包括浏览器发送的

每一个请求,所有的操作,以及接收到的所有响应。你可以复查较早的请求,并修改后补发任何请求,还能以原始的形式或者 web页面的形式来查看保存的响应。可以把两个方向上的整个会话记录到一个文件中,用来作进一步分析或者提供审查线索。

在 Burp Suite里,Burp代理是何其他工具紧密地集成在一起的。并允许把任意的请求和响应发送到其他工具里作进一步处理。通过一次单击,你可以把一个感兴趣的请求作为分析会话令牌的基础,或者经过人工修改后再发送,漏洞分析,或者使用 Burp Intruder进行一次自定义的自动攻击。

通过基于域名,IP地址,协议,HTTP方法,URL,资源类型,参数,cookies,消息头/消息体内容,响应代码,内容类型和 HTML页面标题的请求和响应的细微规则来控制 Burp代理的交互式行为。可以悄悄地执行配置操作,而不会影响任何请求。你可以晚一点查看历史记录以确认请求经过更严格检查。虽然使用了正则表达式匹配规则和替换规则,Burp代理还可以用来自动修改 HTTP请求和响应消息。

除了用户的主界面,在浏览上也可以控制 Burp代理用来查看请求历史记录和重发请求。Burp代理可以与上游代理结合起来使用。它可以处理上游代理和 web服务器的 basic,NTML和摘要式身份认证,同样也可以用在大多数局域网环境中。它支持 SSL(可以自定义服务器或客户端证书),可以查看 HTTPS传输,还可以把它修改成明文。另外,它还能自动处理许多种编码的服务器响应,包括分块传输编码和压缩内容编码。

3.2 使用 Burp代理

当 Burp代理运行后,HTTP/S代理服务器自动开启 8080端口仅作为回环接口。要开始使用 Burp代理,需要简单地把你的浏览器的代理服务器设为 127.0.0.1 :8080,开始浏览。默认情况下,Burp代理配置的是自动拦截对非媒体资源的请求。显示出来后,可以查看和修改。其他的请求(图片和样式表)和所有服务器的响应自动地转发。这些默认动作是可以修改的。

3.3 拦截选项卡(Intercept tab)

你可以使用快捷键 ctrl+F和 ctrl+D来代替”forwar”“drop”。 通过单击其中一个可以使用的选项卡,能以几种形式来显示和分析每个请求和响应。随着适当的消息类型的显示,可用选项卡也会随之显示或消失:

raw:这里显示的是纯文本形式的消息。在文本窗口的底部提供了一个搜索和加亮功能,可以用它来快速地定位出消息中的感兴趣的字符串,如错误消息。在搜索的左边有一个弹出项,让你来处理大小写问题,以及是使用简单的文本搜索还是正则表达搜索。

params:对包含参数(URL查询字符串,cookies消息头,或消息体)的请求,这个选项可以把参数分析成名称/值的组合,并且允许你能简单地查看和修改。

headers:这里以名称/值的组合来显示 HTTP的消息头,并且还以原始的形式显示消息体。

hex:这里允许你直接编辑消息的原始二进制数据。如果在文本编辑器里修改,某些传输类型(例如,使用 MIME编码的浏览器请求的部分)包含的二进制数据可能被损坏。为了修改这些类型的消息,应使用十六进制。

HTML/XML:对于响应中的这种格式的内容,为消息体提供了一种 syntax-colourised视图。

render:对于响应中的包含 HTML或者图像的内容,以视觉形式显示这些内容,最后会显示在浏览器里。

AMF:对于 Action Message Format格式的响应或请求,这显示了一个解码消息的视图树。如果需要编辑,你可以双击树上的节点来修改它们的值。

viewstate:对于包含一个 ASP.NET视图状态的请求和响应,会把视图状态的内容非序列化,这允许你查看任意敏感内容的数据。也可以表明视图状态 MAC是否可用(也就是视

图状态是否可被修改)。

在任意的显示的项上右击打开上下文菜单可执行多种操作。也可以通过主界面上的”action”按钮来打开同样的菜单:

send to:你可以把任意的消息,或者选中的部分消息,发送到 Burp Suite中的其他工具里,来作进一步分析或攻击。

find reference[专业版]你可以在所有的 Burp工具里使用这个功能来搜索和选中项有关的HTTP响应。

discover content[专业版]你可以使用这个功能来探索和用浏览器和网络爬虫发现的内容不同的内容和潜在的功能。

schedule task[专业版]你可以使用这个功能来创建一些设定好运行次数和时长的自动执行的任务。

change request method对所有的请求,经过把所有相关的请求参数适当地搬迁到这个请求里来,你就可以自动地把请求的方法在 POST和 GET中间切换。通过发送恶意的请求使用这个选项来快速测试应用程序的极限参数是多少。

change body encoding对于所有的请求,你可以在应用程序/X-WWW格式的 URL编码和多重表单/数据之间切换消息体的编码方式。

copy URL这个功能是把当前的 URL完整地复制到粘贴板上。

copy to file这个功能允许你把选择一个文件,并把消息的内容复制到这个文件里。这个对二进制数据来说是很方便的,要是通过粘贴板来复制会带来一些问题。复制操作是在选择的文本上进行的,如果没有被选中的内容,则是针对整个消息了。

paste from file这个功能允许你选择一个文件,并把文件里的内容粘贴到消息里。这个对二进制数据来说是很方便的,要是通过粘贴板来复制会带来一些问题。粘贴操作会替换掉被选中的内容,如果没有内容被选中,则在光标位置插入这些内容。

save item这个功能让你指定一个文件,把选中的请求和响应以 XML的格式保存到这个

文件,这里面包括所有的元数据如:响应的长度,HTTP的状态码以及 MIME类型。

don't intercept通过这些命令可以快速地添加拦截动作的规则来阻止拦截到的消息,这些消息和当前的消息有着相同的特征(如远程主机,资源类型,响应编码)。

do intercept仅对请求有效,这允许你可以对当请求和响应的进行强制拦截。

convert selection这些功能让你能够以多种方案对选择的文本进行快速的编码和解码。 URL-encode as you type如果这个选项被打开,你输入的像&和=这样的符号会被等价的 URL编码代替。

拦截选项卡里包含了一个可以用来快速切换拦截开关状态的切换按钮。如果显示”intercept ison”,则消息会被自动拦截或者按照在选择卡里配置的拦截规则进行转发。如果显示”interceptis off”,消息不会被拦截。

3.4 项目选项卡(Options tab)

这个选项里包含了多种控制 Burp代理行为的配置选项,就像下面描述的那样。

Burp代理允许你定义多个监听点。每个监听点在你电脑上开启一个端口并等待浏览器来连接。默认情况下,Burp代理在端口 8080上开启一个监听点,但是你可以修改这个监听点,并且可以添加多个你需要的其他监听点。对于每个监听点,你都可以上面那样来配置他们的一些属性。

local listener port这是一个本地计算机上的一个端口,开启它是用来监听进入的连接。你应该把浏览器的代理服务器设置为主机 127.0.0.1和这个端口。

listen on loopback interface only这里控制着监听点是只绑定在 loopback接口上还是整个网络接口上。注意:如果这个选项没被选中,其他的电脑就也可以连接这个监听点了。这可能会让他们通过你的 IP地址进行出站连接,以及访问代理历史记录内容的敏感数据,如登陆认证。你只有处在可信任的网络的时候才能取消这个选项。

support invisible proxying for non-proxy-aware clients如果你使用的是标准浏览器,你就

不应该选上这个项。如果你的目标应用程序使用了一个在浏览器外的运行厚客户端组件或者一个使它自己的 HTTP请求独立于浏览器之外的框架,这时你会发现这个选项是有用的了。在这种情况下,通过重定向客户端的请求降低网络堆栈 (如给主机文件添加一个条目,或者改变路由器配置),这样你会有效地强制客户端连接 Burp。然而,这些客户端处理的请求可能和web代理上通常是的类型不同。

代理上的请求类型是像这样的:

GET http://myapp.com/foo.php HTTP/1.1 Host: myapp.com

然而无代理的请求是这样的: GET /foo.php HTTP/1.1 Host: myapp.com

通常情况下,web代理需要接收请求的第一行的完整 URL,这样用于确定请求是发送到哪个域的主机(他们不会,如果他们遵守规范,就会把主机消息头作为发送的目标域)。为了让Burp代理兼容客户端发送的无代理类型的请求,你需要选上”support invisible proxying”。当你这样做了后,如果 Burp接收到无代理类型的请求,它会解析出主机的消息头,并把这个作为请求的发送的目标域主机。

redirect to host/port通常你应该把这些选项留为空白。如果配置了他们,Burp代理就会把所有的请求转发到这个指定的主机端口,忽视浏览器发出这个请求的目标。注意如果你使用这个选项,你可能也需要配置 match and replace规则为请求重新指定主机消息头,如果你把请求重定向到的服务器期待一个和浏览器发出的不同的消息头。

server SSL certificate这个选项让你配置一个提交给浏览器的服务器 SSL证书。正确地使用这个选项能解决一些使用拦截代理产生的一些 SSL问题。通过查看服务器 SSL证书帮助的所有细节来了解怎样来使用这个选项。

Note默认情况下,安装时,Burp会创建一个特殊的自签名式的 CA证书,把它保存在你的电脑上,当 Burp启动时使用它。每当你连接一个 SSL保护的站点,Burp就会搜集这个主机

上的服务证书,并用 CA证书来签署。为了充分地利用这个功能,你可以以信任的方式来安

装 Burp的 CA证书,于是在接收每个主机的证书时,不会出现警告。

有时,你希望能在 Burp上使用一个自定义的 SSL证书。你可以在 OpenSSL中使用以下命令来创建一个自定义的证书(名字”foo.crt”),这个名字是自己选的:

openssl genrsa 1024 > foo.key

openssl req -new -x509 -nodes -sha1 -days 7300 -key foo.key > foo.crt

openssl pkcs12 -export -out foo.p12 -in foo.crt -inkey foo.key -name \

这个面板里允许你使用细微拦截规则来配置这个管理请求和响应的拦截。复选框”interceptif”控制着是否一些清求和响应该被拦截。如果选择了 1到 2个框,按照表格里的活动规则相关的信息就会被拦截。根据每条规则左边的复选框,决定这些规则是有效还是停用。通过右边的按钮,可以对这些规则进行编辑,删除,添加和加载。

几乎能对任何消息属性的规则进行配置,包括域名,IP地址,协议,HTTP方法,URL,资源类型,参数,cookies,消息体/消息体内容,响应编码,内容类型和 HTML页面标题。你配置的这个规则仅仅是用来拦截目标范围的 URL项。可以使用正则表达式来为每个属性设置复杂的匹配条件。通过使用布尔运算符 AND和 OR来融合规则。按从左到右的逻辑顺序处理规则表达式,在范围内的每个运算符就是这样的:

(cumulative result of all prior rules) AND/OR (result of current rule) 所有生效的规则会做到每条消息上,在使用过最后一个生效的规则的结果在后台决定了这个消息是被拦截还是转发。

当用户修改请求和响应后,”update Content-Length”复选框控制着 Burp代理是否更新他们消息头的长度。如果选中,Burp代理会自动重新计算被修改的 HTTP消息体的长度,并为HTTP消息头设置正确的值。当 HTTP消息体被修改时,这个功能显的非常必要。HTTP规范和大多数的 web服务器一样,需要在消息头内容长度上提交的 HTTP消息体长度的正确值。如果没有指定正确的值,服务器或浏览器收到消息会产生错误,或者收到不完整的消息,或者会无限期地等待接收下面的数据。

通过自动地回写到应用程序响应的 HTML,你可以使用这些选项来完成许多任务。Unhiding

hidden fields使你能够直接编辑浏览器的值,而不是通过拦截后面的请求。和 enabling disabled fields,removing length limitations一样。Disabling JavaScript and OBJECT tags在测试中提供一种快速的方式式客户端逻辑失效(注意这个功能并不是设计用来进行 NoScript方式的安全防御的)。

match and replace这些选项配置 Burp代理执行基于正则表达式的匹配准则和 HTTP请求和响应的消息头和消息体的替换。对于选中的每个规则,都会使用正则表达式来测试消息头或体是否匹配,并用指定的字符串替换掉匹配的部分。

对于整个消息头来说,如果整个消息头都匹配,并且替换的字符串为空,则删除这个消息头。如果没有匹配这些指定的表达式,则替换字符串会作为一个新消息头添加进来。这个功能在自动进行某种应用程序攻击时会非常有用,如操纵 cookies和 URL字符段查询。

talk HTTP/1.0 to server这里控制着 Burp代理是否要使用 1.0版本的 HTTP来强行连接目标服

务器。默认设置是使用浏览器的 HTTP版本。对于使用 1.0和 1.1版本的大多数浏览

器,Burp

代理都能成功地通过测试。然而对于一些传统的服务器或应用程序使用 1.0版本才能正常,因此需要在这里来指定它。

unpack gzip / deflate一些浏览器会从服务器上接收到 gzip和 deflate的压缩内容。为了能够查看和修改这些内容,你需要对他们进行解压缩。这个选项就是控制 Burp代理是否自动进行解压缩。

3.5 历史记录选项(History tab)

这个选项是来显示所有请求产生的细节,显示的有目标服务器和端口,HTTP方法,URL,以及请求中是否包含参数或被人工修改,HTTP的响应状态码,响应字节大小,响应的 MIME类型,请求资源的文件类型,HTML页面的标题,是否使用 SSL,远程 IP地址,服务器设置的 cookies,请求的时间。当你把拦截关闭时,这个选项是非常有用的。它允许你在不适用拦截的情况下进行浏览时,仍能够监视应用程序传输的关键细节。

你可以通过单击历史记录表里的列标题对表格里的列里的内容进行排序 (或者用 shift+单击进行倒置排序)。例如,你想让历史记录表向上增长,即最近产生的项在表的顶端,则你可以使用 shift+点击最左边的列来显示请求的序号。另外,如果你想按照内容类型列出请求,你就点击”MIME type”这一列。

下面的这个历史表格是一个预览表格。如果你选择了历史记录里的一个项,相关的请求和响应就会显示在窗格的下部。如果这些请求或响应时通过手动或者你配置的规则修改的,修改后的项会显示在原来项的旁边。

在历史记录表里,右击一个或多个选项,就会显示一个上下文菜单让你执行一些操作,包括修改目标范围,把这些选项发送到其他 Burp工具,或者删除这些项:

[专业版]你可以通过上下文菜单使用许多定制工具,如搜索脚本与注释,分析目标 web站点,调度任务等等。

你可以通过添加注释或加亮,来注释一个或多个选项:

你可以通过最左边的列里的下拉菜单来加亮单个选项:

通过双击来就地注释单个选项,并编辑单元格:

另外,如果你想一次注释多个选项,可以选中相关的项,然后使用上下文菜单进行注释或加亮:

当你把感兴趣的项进行了注释后,可以使用列排序和过滤显示来快速地找到这些项。 除了使用预览表格里的视图请求,在弹出窗口里,可以通过对表格里的任意项进行双击来显

示请求和响应。

显示在历史记录表里的内容实际上是一个进入底层数据库的视图,你可以通过配置过滤器来确定哪些顶层的数据项显示在表格里。有效应用程序包含了大量的内容,如图像,CSS等,这些有利于从视图上隐藏的。AJAX应用程序产生大量相似的异步请求,你可能会想把他们从视图上过滤出来来查看一些感兴趣的项。在这个历史记录表的顶部有一个过滤栏。单击会有一个弹出窗口,让你来精准地配置显示哪些内容在表格里:

你可以选择只显示那些有参数的请求,或者在当前目标范围内的项,或者接收到的响应。你可以通过 MIME类型,HTTP状态码,文件扩展名进行过滤。如果你设置过滤隐藏了一些项,他们不会被删除,只是隐藏了,通过解除相关的过滤就可以重新显示出来了。

[专业版]你可以为过滤器指定一个搜索项,让它显示那些只包含请求或响应的项,或者显示需要的用户添加的注释。

和过滤器一样,你可以在历史记录表里通过选中一个或多个项,然后在上下文菜单里选择

“delete”来永久地删除这些项。 在一些情况下,这对显示更多进入底层历史记录数据的视图很有用,并对每个视图采用不同的过滤器。例如,在测试访问控制时,你可以以不同用户的身份登录到应用程序,以及

想单独地查看在用户上下文产生的请求序列。你可以通过代理记录的上下文菜单上的”show newhistory window”选项来打开添加的代理记录视图。然后你可以为每个记录窗口配置过滤器来显示你想看到的请求。

为了使用这个功能进行测试访问控制,你需要对测试的每个用户上下文使用单独的浏览器,为每个浏览器在 Burp上创建单独的代理监听点(你需要更新每个浏览器里的代理设置并把它指向相关的监听点)。然后对于每个浏览器,在 Burp上你打开一个单独的代理记录窗口,并设置过滤器来显示和代理监听点的端口相关的请求。当你用每个浏览器访问应用程序时,每个记录窗口里只显示和用户上下文相关的项:

3.6 浏览器控制(In-browser controls)

除了使用主界面,你还可以直接使用浏览器来控制 Burp代理。

在浏览器里输入 Http://burp就可以访问所有的代理记录。这个记录会以一个表格的形式显示出来。内容有:目标服务器和端口号,HTTP方法,URL,文件扩展名,请求是否被修改过:

单击”URL”列的条目显示出本地的请求,单击 “modified?”列的条目显示出相关修改过的请求。

当完全地显示出一个单独的请求时,可以通过” repeat request”按钮重发这个请求。依据当前配置的拦截规则,可以通过 Burp代理的修改来显示这个请求。当浏览器接收到服务器对重发请求作出的响应时,前进浏览一下,就可以像平常一样继续了。

如果可用,你可以在浏览器里单击” view response”按钮来查看本地响应。这会让 Burp代理退回到从服务器里接收到的那个响应,Burpd代理既不会显示请求也不会显示响应来修改。

注意当浏览器从 Burp代理接收到保存过的响应时,这会导致浏览器加载添加的请求。Burp代理会以平常的方式处理这些请求,将不会返回以前保存的数据。

第四章 Burp Spider Help

4.1 Burp网络爬虫是什么?(What is Burp Spider?)

Burp Spider是一个映射 web应用程序的工具。它使用多种智能技术对一个应用程序的内容和功能进行全面的清查。

Burp Spider通过跟踪 HTML和 JavaScript以及提交的表单中的超链接来映射目标应用程序,它还使用了一些其他的线索,如目录列表,资源类型的注释,以及 robots.txt文件。结果会在站点地图中以树和表的形式显示出来,提供了一个清楚并非常详细的目标应用程序视图。

Burp Spider能使你清楚地了解到一个 web应用程序是怎样工作的,让你避免进行大量的手动任务而浪费时间,在跟踪链接,提交表单,精简 HTNL源代码。可以快速地确人应用程序的潜在的脆弱功能,还允许你指定特定的漏洞,如 SQL注入,路径遍历。

4.2 使用 Burp Spider(Using Burp Spider)

要对应用程序使用 Burp Spider需要两个简单的步骤:

1.使用 Burp Proxy配置为你浏览器的代理服务器,浏览目标应用程序(为了节省时间,你可以关闭代理拦截)。

2.到站点地图的”target”选项上,选中目标应用程序驻留的主机和目录。选择上下文菜单的 “spider this host/branch”选项。

你也可以在任何Burp工具的任意请求或响应上使用上下文菜单上选择”spider this item”.当你发送一个站点地图的分支来 spidering,Spider会首先检查这个分支是否在定义好的spidering的范围内。如果不是,Burp会提示你是否把相关的 URL添加到范围里。然后,Burp开始 spidering,并执行下面的操作:

在分支上,请求那些已被发现的还没被请求过的 URL。

在分支上,提交那些已被发现但提交 URL错误的表单。

重复请求分支上的先前收到的状态码为 304的项,为检索到一个应用程序的新(未进入缓存)副本。

对所有的检索到内容进行解析以确认新的 URL和表单。 只有发现新内容就递归地重复这些步骤。

继续在所有的范围区域内 spidering,直到没有新内容为止。

注意 Spider会跟踪任何在当前定义的 spidering范围内的 URL链接。如果你定义了一个比较宽的目标范围,并且你只选择了其中的一个分支来 spidering,这时 Spider会跟踪所有进入到这个比较宽的范围内的链接,于是也就不在原来的分支上 spider。为了确保 Spider只在指定分支内的请求上,你应该在开始时,就把 spidering范围配置为只在这个分支上。你应该小心地使用 Burp Spider。在它的默认设置上,Spider会在 spidering范围内使用默认输入值,自动地提交任意表格,并且会请求许多平常用户在只使用一个浏览器不会发出的请求。如果在你定义范围的 URL是用来执行敏感操作的,这些操作都会被带到应用程序上。在你完全地开始自动探索内容之前,使用浏览器对应用程序进行一些手动的映射,是非常可取的。

4.3 控制选项(Control tab)

这个选项是用来开始和停止 Burp Spider,监视它的进度,以及定义 spidering的范围。

Spider running这个是用来开始和停止 Spider。Spider停止后,它自己不会产生请求,但它会继续处理通过 Burp Proxy的响应,并且在 spidering范围内的新发现的项都会送入请求队列里,当 Spider重新启动时,再来请求。

这里显示的一些 Spider进度的指标,让你能看到剩余的内容和工作量的大小。