一、Target:
(一)、目标站点地图:
中央站点地图汇聚了所有 Burp 收集的关于你正在攻击的应用程序的信息。这包括了直接通过 Proxy 的请求,以及根据这些请求得到的响应的分析结果,和 Spider 发现的所有内容。当你浏览一个应用程序时,会为你映射出大量的内容,甚至远远超过你的要求。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IIQIdDye-1611729846472)(en-resource://database/3026:1)]
已请求的项目会以黑色显示;那些也被 Burp 推断出,但还未被请求过的以灰色显示。在默认情况下,那些让渗透测试人员不感兴趣的项目是被过滤掉而不被显示的,但种行为是可以被修改的(这将在下面介绍)。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hz7t6eZF-1611729846474)(en-resource://database/3027:1)]
站点地图的界面基本上像一个图形化的电子邮件客户端。一个主机和目录树显示在左侧。在数视图中选择一个或多个节点会导致下面的这些节点的所有项目以表格的形式显示在右上方。表格里面包含了项目的关键细节(URL,编码方式,页面标题等等)和能按任意列排序的项目(单击任意列的标题按降序排列,按住 shift 单击是升序排列)。选中表格中的一个项目,相关的请求和响应就会显示在右下角的预览窗格里。这个预览窗格里包含所有和 Burp 里相似的功能—消息头和参数的分析,文本搜索,媒体渲染等等。
当显示出你的目标的信息全部收集完毕时,站点地图通过随时出现的上下文菜单使你能控制发起特定的攻击。例如,你可以选择一个主机或者树视图的文件夹,以及执行树视图的整个分支上的指令,如扫描:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fIPwMdDF-1611729846476)(en-resource://database/3028:1)]
同样地,你可选择视图树或表格中的单个文件,并把相关的请求发送到其它工具,如 Intruder或者 Repeater。如果浏览器没有请求过这一项, Burp 就会根据 URL 和从目标域接受到的cookies 为这一项构造出一个默认请求:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GfLBLhqC-1611729846477)(en-resource://database/3029:1)]
你可以通过上下文菜单访问各种定制工具,如搜索注释和脚本,分析你的目标 web站点,调度任务等等。在视图表格里,你可以对单个或多个的项目进行注释,对他们进行添加注释和强调:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H4Cnqnlk-1611729846479)(en-resource://database/3030:1)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-99vUm8JT-1611729846479)(en-resource://database/3031:1)]
你可以通过双击来编辑单元格的方式就地对单个项目进行注释:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UczZFcUG-1611729846480)(en-resource://database/3032:1)]
另外,如果你想一次对多个项目进行注释,你选择相关的项目,并使用上文菜单来添加注释和申请加亮:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JWyx2bP0-1611729846482)(en-resource://database/3033:1)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Iv80WX24-1611729846482)(en-resource://database/3034:1)]
当你已经注释出了自己感兴趣的项目时,可以通过列排序并和显示过滤来快速找到这些项目。站点地图显示的内容是有效地进入基础数据库的一个视图,并且你可以配置过滤器以决定在地图上显示那些项的基础数据。一些应用程序包含大量的内容,如:图片, CSS 等,这些通常在视图上是隐藏的。在站点地图的上方有一个过滤器栏。单击这里,会有一个弹出栏,让你能精确地设置在地图上显示那些内容:
你可以选择只显示参数有请求,或者在当前的目标范围内。你可以通过 MIME 类型, HTTP的状态码和文件扩展名进行过滤。如果你设置一个过滤器来隐藏一些项,这些项不会被删除,仅仅是隐藏了,如果你解除相关的过滤器,它们会重新出现。这就意味着你可以使用过滤器来帮助你系统地研究一个复杂的网站地图,了解各种不同兴趣的内容。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ima4yEcu-1611729846483)(en-resource://database/3035:1)]
你可以对指定的搜索词进行过滤,在请求和响应以及可用的用户注释中包含的这些表达式的项都将被显示出来。除了视图里的过滤内容,你有时可能会想彻底删除它。例如,如果你浏览到目标域外,你将会在 Burp 里积累了一些你不需要的数据。在这种情况下,你可以使用站点地图的上下文菜单永久地删除多余的项目。例如,你可以选择多个主机或者视图树里的文件夹或者表格视图,并彻底删除他们:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6WPZ6p5A-1611729846485)(en-resource://database/3036:1)]
(二)、站点地图比较:
1、什么是站点地图比较:
你可以使用 Burp 来对比两个站点地图,并突出其差异。这个功能可以通过各种方式来帮助寻找不同种类的访问控制漏洞,并确定一个大型的应用程序的哪一块需要进行人工密切检查。
2、使用站点地图可以达到什么目的:
- 你可以使用不同权限级别的账号来映射应用程序,并比较得到的结果来确定一个功能是对其中的一个用户而不是其他的用户是可见的。
- 你可以使用一个高权限的账号来映射应用程序,然后使用一个低权限的账号来重新请求整个网站地图,以确定是否有访问权限的限制—验证垂直越权。
- 你可以使用两个相同权限的不同账号来映射应用程序,以确定哪些是需要特定的用户标识符来进行访问的敏感资源的事件,并确定是否正确地划分了每个用户的数据—验证平行越权。
3、如何使用站点地图:
你可以通过在主站点地图上的上下文菜单来使用“compare site maps”功能。打开一个向导,需要你配置要比较的站点地图的细节,以及比较的方法。当你选择了需要比较的站点地图,可以选择下面的这些选项:
- 显示在 Burp 的目标选项中的当前站点地图。
- 从一个以前保存 Burp 文件加载过来的站点地图。
- 以不同的 session context,对上面的两者进行重新请求。
- 你可以选择包含所有站点地图的内容,也可以限制选定范围内的项目。如果你选择以一个不同的 session context,特别重要的是不要包括会破坏上下文的请求—例如登陆,注销,用户模拟功能等等。在执行比较时, Burp 通过对第一个站点地图的每一个请求与第二个站点地图的请求进行对比,反之亦然。通过对匹配请求的响应进行对比,来查找出所有的差异。对站点地图内不匹配的项分别进行标记为删除或添加。这样高度可配置的确切过程,允许你定制出针对目标应用程序的比较功能。下面列出了 Burp 怎样比较两个站点地图的配置选项:
在大多数情况下,默认的选项能很好的工作,并对比在查询的字符串和消息里面的 URL 文件路径, HTTP 方法和参数的名称的请求。对于一些应用程序,你需要修改这些默认选项,以确认能准确地对请求进行匹配。例如,一个应用程序在同一个 URL 上进行不同的操作,通过查询的字符串值来指定操作,你需要按他们的名字和参数的值匹配他们的请求。下面显示的是怎样是 Burp 请求与响应相匹配的设置选项:
同样,在大多数情况下可以使用默认设置。这些选项忽略了没有太大价值的 HTTP 消息头和表单域,也忽略了空白响应。默认选项是减少无关噪声响应带来影响而设计的,让你能更容易地集中精力在差异上。下面显示了一个简单的站点地图对比结果。显示出在管理员权限下和用户权限下发出的请求映射出的站点地图。经过分析后,两个站点地图的不同点,用不同颜色标出,并显示出两者之间的添加,删除,修改(如果请求过整个第一个站点地图,在地图里将不会有添加和删除项)。对于修改项,表格里有若干不同列,来表示由第一个站点地图内容修改为第二个站点地图内容。当你选择其中的一项时,另一个站点地图里的相关的项也被选中,响应里面的修改点会被加亮:
要想分析出站点地图的对比结果,就需要明白指定应用程序的上下文和意义,以及人的理解能力。例如,上面的截图显示了不同用户访问主页时得到的不同响应。这两个响应显示出了登陆用户的不同描述,管理员权限的用户有一个附加的菜单项。这些不同都可以预见的,他们对应用程序访问控制的有效性没有影响的,因为他们仅仅只在用户界面上。下面的截图显示了两种用户请求顶级管理页面时得到的响应。这里管理员用户可以看到可用的菜单选项,而普通用户只能看到“not authorised”消息。这些不同显示了访问控制得到了正确的配置:
下面的截图显示了每个用户在请求具有管理员功能的“list users”得到的响应。这里响应相同说明应用程序是有漏洞的,因为普通用户是不应该能使用这种功能,在他们界面里没有任何指向它的连接 :通过这个示例显示出,简单地对站点视图树的探索和查看项目的不同点,不足以评估应用程序的访问控制的有效性。两个想同的响应表明可能会有一个漏洞(例如,管理功能暴露的敏感信息),也许会是安全的(例如,在显示登录用户个人资料的页面上),所有的这些情况可以共存的,甚至在同一个应用程序上。这就是为什么全自动化工具在探测访问控制漏洞过程中效率是如此的低下。
因此, Burp 需要你密切地检查应用程序的功能,这不会减轻你的任务,对每一种情况都作出评估,看看访问控制是否正确的使用。站点地图的比较功能是一个尽可能自动化的过程,在一个清晰的表格里会给出你所需要的信息,并让你通过自己对应用程序的了解来发现任何的实际漏洞。
3、Scope–目标域:
这个“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 根据你在站点地图或其它地方使用上下文菜单给出的直观说明来为自己定义规则。在你开始探测应用程序前,你需要简单地浏览目标页面,这样才能让它显示在站点地图上。然后,你可以选择一个或多个主机和目录,并通过上下文菜单把他们在范围内包含或排除。这个过程非常简单,大不多情况下,这会让你迅速地定义出满足你测试的所有规则: