BurpSuite最详细教程使用手册.docx
- 文档编号:5554234
- 上传时间:2022-12-19
- 格式:DOCX
- 页数:116
- 大小:7.42MB
BurpSuite最详细教程使用手册.docx
《BurpSuite最详细教程使用手册.docx》由会员分享,可在线阅读,更多相关《BurpSuite最详细教程使用手册.docx(116页珍藏版)》请在冰豆网上搜索。
BurpSuite最详细教程使用手册
Burp-Suite-最详细教程-翻译版
简介
什么是BurpSuite?
BurpSuite是用于攻击web应用程序的集成平台。
它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。
所有的工具都共享一个能处理并显示HTTP消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。
BurpSuite能高效率地与单个工具一起工作,例如:
一个中心站点地图是用于汇总收集到的目标应用程序信息,并通过确定的范围来指导单个程序工作。
在一个工具处理HTTP请求和响应时,它可以选择调用其他任意的Burp工具。
例如,代理记录的请求可被Intruder用来构造一个自定义的自动攻击的准则,也可被Repeater用来手动攻击,也可被Scanner用来分析漏洞,或者被Spider(网络爬虫)用来自动搜索内容。
应用程序可以是”被动地”运行,而不是产生大量的自动请求。
BurpProxy把所有通过的请求和响应解析为连接和形式,同时站点地图也相应地更新。
由于完全的控制了每一个请求,你就可以以一种非入侵的方式来探测敏感的应用程序。
当你浏览网页(这取决于定义的目标范围)时,通过自动扫描经过代理的请求就能发现安全漏洞。
IburpExtender是用来扩展BurpSuite和单个工具的功能。
一个工具处理的数据结果,可以被其他工具随意的使用,并产生相应的结果。
第一章BurpSuite工具箱
Proxy——是一个拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
Spider——是一个应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
Scanner[仅限专业版]——是一个高级的工具,执行后,它能自动地发现web应用程序的安全漏洞。
Intruder——是一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:
枚举标识符,收集有用的数据,以及使用fuzzing技术探测常规漏洞。
Repeater——是一个靠手动操作来补发单独的HTTP请求,并分析应用程序响应的工具。
Sequencer——是一个用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
Decoder——是一个进行手动执行或对应用程序数据者智能解码编码的工具。
Comparer——是一个实用的工具,通常是通过一些相关的请求和响应得到两项数据的一个可视化的”差异”。
第二章BurpSuite的使用
当BurpSuite运行后,BurpProxy开起默认的8080端口作为本地代理接口。
通过置一个web浏览器使用其代理服务器,所有的网站流量可以被拦截,查看和修改。
默认情况下,对非媒体资源的请求将被拦截并显示(可以通过BurpProxy选项里的options选项修改默认值)。
对所有通过BurpProxy网站流量使用预设的方案进行分析,然后纳入到目标站点地图中,来勾勒出一张包含访问的应用程序的内容和功能的画面。
在BurpSuite专业版中,默认
情况下,BurpScanner是被动地分析所有的请求来确定一系列的安全漏洞。
在你开始认真的工作之前,你最好为指定工作范围。
最简单的方法就是浏览访问目标应
用程序,然后找到相关主机或目录的站点地图,并使用上下菜单添加URL路径范围。
通过配置的这个中心范围,能以任意方式控制单个Burp工具的运行。
当你浏览目标应用程序时,你可以手动编辑代理截获的请求和响应,或者把拦截完全关闭。
在拦截关闭后,每一个请求,响应和内容的历史记录仍能再站点地图中积累下来。
和修改代理内截获的消息一样,你可以把这些消息发送到其他Burp工具执行一些操作:
你可以把请求发送到Repeater,手动微调这些对应用程序的攻击,并重新发送多次的单独请求。
[专业版]你可以把请求发送到Scanner,执行主动或被动的漏洞扫描。
你可以把请求发送到Intruer,加载一个自定义的自动攻击方案,进行确定一些常规漏洞。
如果你看到一个响应,包含不可预知内容的会话令牌或其他标识符,你可以把它发送到Sequencer来测试它的随机性。
当请求或响应中包含不透明数据时,可以把它发送到Decoder进行智能解码和识别一些隐藏的信息。
[专业版]你可使用一些engagement工具使你的工作更快更有效。
你在代理历史记录的项目,单个主机,站点地图里目录和文件,或者请求响应上显示可以使用工具的任意地方上执行任意以上的操作。
可以通过一个中央日志记录的功能,来记录所单个工具或整个套件发出的请求和响应。
这些工具可以运行在一个单一的选项卡窗口或者一个被分离的单个窗口。
所有的工具和套件的配置信息是可选为通过程序持久性的加载。
在BurpSuite专业版中,你可以保存整个组件
工具的设置状态,在下次加载过来恢复你的工具。
2.1Burp菜单
这个菜单包含了以下描述的一系列关键功能和配置选项。
2.1.1搜索
[专业版]在Burp菜单上选择”search”后,会打开一个用起来非常简单的搜索对话框。
你可以设定以下搜索参数:
搜索表达式:
搜索是否区分大小写
搜索的是简单的文本还是正则表达式
搜索范围是否有限制范围
搜索的结果是否随着HTTP消息的处理而动态更新
是在哪种HTTP消息的位置上搜索(请求vs响应,消息头vs消息主体)使用那种工具进行搜索,当你单击"go"时,搜索开始,在一个有序的表格里,将显示出每个与搜索相关的关键内容细节,在一个预览窗格里,你能看到所有的请求和响应,也包括匹配你强调的搜索项。
通常上下文菜单可用于指定发起攻击的具体项目,也可将他们发送到其他工具里做进一步的分析:
请注意,如果你通过上下文菜单进行对目标站点地图的搜索,那么这次搜索将被具体化到一些选定的分支上。
2.1.2保存和恢复状态
[专业版]下面的帮助说明了保存和恢复状态的过程,和一些通常使用的情况。
保存状态
能保存的项目有:
包含通过Proxy和Spider的所有内容的目标站点地图
Proxy历史记录
Scanner发现的问题
Repeater选项卡的内容和历史记录
所有套件工具的配置信息
在Burp菜单选择”savestate”,会启动一个向导,你可以定义要保存的状态和配置信息:
这时你来选择要输出的文件,剩下的由Burp来完成。
当Burp正在保存状态时,你可以继续使用它,如果你尝试对Burp正在保存的数据执行操作,可能会遇到一些短暂的延时,这样做的目的是为了防止数据损坏。
显而易见,由于保存的文件包含在你正在保存的工具内不断积累的请求和响应,所以这个文件会越来越大。
实际上,保存或恢复几个小时的测试通常会再1到2分钟完成。
在执行保存之前,你可以通过删除不必要的站点地图和代理历史记录的方式,来加快和精简这个过程。
2.1.3恢复状态
在Burp菜单选择”restorestate”,会启动一个向导,在这里你可以自定义要恢复的状态和配
置的选项。
首先,你要选择先前保存的文件。
Burp会分析这个文件识别其中的内容(注意每个保存的文件都能包含任意组合工具的状态和配置信息)。
对于每种保存的状态和配置信息,Burp会让你选择是否想要恢复,以及是否想要增加或者替换工具耳朵现有状态。
Burp会恢复你的选择,然后继续工作。
当
Burp正在恢复状态时,你可以继续使用它,如果你尝试对Burp正在恢复的数据执行操作,可能会遇到一些短暂的延时,这样做的目的是为了防止数据损坏。
使用场合
对渗透测试人员来说,保存恢复工具状态和配置信息有巨大的好处:
你可以在每天结束的时候保存你的工作,然后在第二天早上无缝地恢复恢复你的工作。
你可以备份整个工作的关键测试信息,以防系统崩溃。
定制方案完成后,你可以存储一个完整的归档文件的所有积累信息,使你能在稍后重新打开继续你的工作,回答客户的问题或者重新测试同一个问题。
映射出应用程序内容的任务可以由顾问们来一起分担,这些的小的网站地图可以逐渐合并到一个中去,这些都可以被所有的顾问共享。
团队的领导可以优化一个特定的定制Burp配置,包括细小的目标范围的界定,以及把这种配置直接传递给其他团队成员开始测试。
你可以为不同的任务设计相应的配置模板,以备将来使用,这样可以在他们之间简单地切换。
2.1.4记录设置
在加载不同的软件时,”remembersetting”选项决定了是否让Burp记住配置信息的设置。
你可以让Burp对所有软件都记住设置,也可以对选择的单个软件。
“restoredefaults”选项把BurpSuite或者单个工具的配置设置重置到它们的默认值。
2.1.5精简模式
如果这个选项被选中,接下来Burp将以精简模式运行,这时可用的工具只有:
BurpProxy,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来对比两个站点地图,并突出其差异。
这个功能可以通过各种方式来帮助寻找不同种类的访问控制漏洞,并确定一个大型的应用程序的哪一块需要进行人工密切检查。
此功能的一些典型使用情况如下:
你可以使用不同权限级别的账号来映射应用程序,并比较得到的结果来确定一个功能是对其中的一个用户而不是其他的用户是可见的。
你可以使用一个高权限的账号来映射应用程序,然后使用一个低权限的账号来重新请求整个网站地图,以确定是否有访问权限的限制。
你可以使用两个相同权限的不同账号来映射应用程序,以确定哪些是需要特定的用户标识符来进行访问的敏感资源的事件,并确定是否正确地划分了每个用户的数据。
你可以通过在主站点地图上的上下文菜单来使用”comparesitemaps”功能。
打开一个向导,需要你配置要比较的站点地图的细节,以及比较的方法。
当你选择了需要比较的站点地图,可以选择下面的这些选项:
显示在Burp的目标选项中的当前站点地图。
从一个以前保存Burp文件加载过来的站点地图。
以不同的sessioncontext,对上面的两者进行重新请求。
你可以选择包含所有站点地图的内容,也可以限制选定范围内的项目。
如果你选择以一个不同的sessioncontext,特别重要的是不要包括会破坏上下文的请求—例如登陆,注销,用户模拟功能等等。
在执行比较时,Burp通过对第一个站点地图的每一个请求与第二个站点地图的请求进行对比,反之亦然。
通过对匹配请求的响应进行对比,来查找出所有的差异。
对站点地图内不匹配的项分别进行标记为删除或添加。
这样高度可配置的确切过程,允许你定制出针对目标应用程序的比较功能。
下面列出了Burp怎样比较两个站点地图的配置选项:
在大多数情况下,默认的选项能很好的工作,并对比在查询的字符串和消息里面的URL文件路径,HTTP方法和参数的名称的请求。
对于一些应用程序,你需要修改这些默认选项,以确认能准确地对请求进行匹配。
例如,一个应用程序在同一个URL上进行不同的操作,通过查询的字符串值来指定操作,你需要按他们的名字和参数的值匹配他们的请求。
下面显示的是怎样是Burp请求与响应相匹配的设置选项:
同样,在大多数情况下可以使用默认设置。
这些选项忽略了没有太大价值的HTTP消息头和表单域,也忽略了空白响应。
默认选项是减少无关噪声响应带来影响而设计的,让你能更容易地集中精力在差异上。
下面显示了一个简单的站点地图对比结果。
显示出在管理员权限下和用户权限下发出的请求映射出的站点地图。
经过分析后,两个站点地图的不同点,用不同颜色标出,并显示出两者之间的添加,删除,修改(如果请求过整个第一个站点地图,在地图里将不会有添加和删除项)。
对于修改项,表格里有若干不同列,来表示由第一个站点地图内容修改为第二个站点地图内容。
当你选择其中的一项时,另一个站点地图里的相关的项也被选中,响应里面的修
改点会被加亮:
要想分析出站点地图的对比结果,就需要明白指定应用程序的上下文和意义,以及人的理解能力。
例如,上面的截图显示了不同用户访问主页时得到的不同响应。
这两个响应显示出了登陆用户的不同描述,管理员权限的用户有一个附加的菜单项。
这些不同都可以预见的,他们对应用程序访问控制的有效性没有影响的,因为他们仅仅只在用户界面上。
下面的截图显示了两种用户请求顶级管理页面时得到的响应。
这里管理员用户可以看到可用的菜单选项,而普通用户只能看到”notauthorised”消息。
这些不同显示了访问控制得到了正确的配置:
下面的截图显示了每个用户在请求具有管理员功能的”listusers”得到的响应。
这里响应相同说明应用程序是有漏洞的,因为普通用户是不应该能使用这种功能,在他们界面里没有任何指向它的连接:
通过这个示例显示出,简单地对站点视图树的探索和查看项目的不同点,不足以评估应用程序的访问控制的有效性。
两个想同的响应表明可能会有一个漏洞(例如,管理功能暴露的敏感信息),也许会是安全的(例如,在显示登录用户个人资料的页面上),所有的这些情况可以共存的,甚至在同一个应用程序上。
这就是为什么全自动化工具在探测访问控制漏洞过程中效率是如此的低下。
因此,Burp需要你密切地检查应用程序的功能,这不会减轻你的任务,对每一种情况都作出评估,看看访问控制是否正确的使用。
站点地图的比较功能是一个尽可能自动化的过程,在一个清晰的表格里会给出你所需要的信息,并让你通过自己对应用程序的了解来发现任何的实际漏洞。
2.1.8目标范围:
这个”scope”选项是让你告诉Burp,以什么样扫描水准,以及哪些主机和URL来进行你的工作。
你可以把目标范围大致想象成你有兴趣的并准备攻击的选项。
目标范围以许多方式影响单个Burp工具的行为,例如:
你可以设置过滤器只显示范围内的项。
你可以告诉代理只拦截范围内的请求和响应。
网络爬虫只会跟踪范围内的链接。
在BurpSuite专业版中,你可以启动自动扫描范围项内的漏洞。
你可以配置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将被视为在目标范围内。
这使你可以自定义一般范围的内的特定主机和目录,但排除该范围内特定的子目录和文件。
例如,下面这样定义的目标范围会匹配和以及在URL。
像上面描述那样直接设置范围规则对许多用户来说,显得不太友好。
有一个更简单的方法,就是让Burp根据你在站点地图或其它地方使用上下文菜单给出的直观说明来为自己定义规则。
在你开始探测应用程序前,你需要简单地浏览目标页面,这样才能让它显示在站点地图上。
然后,你可以选择一个或多个主机和目录,并通过上下文菜单把他们在范围内包含或排除。
这个过程非常简单,大多情况下,这会让你迅速地定义出满足你测试的所有规则:
2.1.9套件选项
这个选项卡里包含了不针对任何单一工具的Suite-wide设置,他们分为包含许多模块的子标签。
2.1.10连接选项
这个标签里包含了控制Burp怎样处理网络连接的选项,认证,代理服务器,重定向,超时,主机名解析。
这些控制BurpSuite在连接目标web服务器时是否使用认证。
可以为不同的主机配置不同的认证类型和验证。
支持的类型有:
basic,NTLMv1,NTLMv2和摘要式身份认证。
域字段和主机名字段仅用在NTLM认证。
在遇到认证错误时,”promptforcredentials”选项会弹出一个互动窗口来提示错误。
这个设置允许你配置规则来为不同域的主机指定不同的代理。
上面的这个设置会使Burp直接地与进行会话。
使用一个没有任何验证的内部代理服务器访问*,对所有的访问,包括公共互联网,都使用一个有网关认证的web代理。
你可以在特定的目标主机上使用标准通配符。
规则是按顺序使用的,第一条符合你连接的web服务器的规则将被使用。
如果没有找到匹配规则,Burp将默认不使用代理进行连接。
如果需要,你可以为每一个上游代理指定一个认证类型和验证。
支持的认证类型:
basic,NTLMv1,NTLMv2和摘要式身份验证。
域字段和主机名字段只对NTML认证有效。
这些设置是让你配置Burp为所有代发的连接指定一个SOCKS代理。
这些设置决定了各种网络任务的最大延时。
”normal”项是最多网络连接有效的设置,并决
定了BurpSuite在放弃一个请求并记录超时前等待的最长时间。
”readtilclose”设置是用在处理响应过程的,并且这个响应包含一个没有Conntent-Length或者Transfer-Encoding的HTTP消息头。
在这种情况下,在确定传输完成前,BurpSuite会等待一个特殊间隔。
”domainnameresolution”设置BurpSuite成功解析域名的频率。
如果目标主机地址频繁地变化,就需要设置一个适当低的值。
”faileddomainnameresolution”设置决定了BurpSuite重新尝试解析没有成功解析的域名的频率。
这些设置让你指定特殊的主机名到IP的映射,并覆盖由操作系统提供的DNS解析。
当主机文件被修改,使用无代理感知后客户端组件为传输提供不可见的代理时,这个功能能确保正确地向前转发请求。
这些设置是控制处理从服务器接收到的HTTP100的连续响应。
这会发生在这种情况下,当你向服务器提交一个POST请求后,在请求完全传送完之前,服务器会返回一个响应。
如果选择”understand100Continueresponses”,BurpSuite会跳过中间响应,并为响应信息解析真正的消息头像状态编码和内容类型。
如果选择”remove100Continueheaders”,在这些服务器的响应经过单个工具前,BurpSuite会清除任意的一个响应的消息头。
2.1.11Sessions选项
这个选项是让你配置Burp的会话处理和宏功能的。
要想了解这些功能的更多信息,请查看会话处理帮助。
2.1.12显示选项
这个选项卡里包含了控制怎样显示HTTP请求和响应的选项。
这些设置控制着用于显示HTTP消息的字体,以及在请求和响应中,是否执行加亮语法。
在显示HTTP请求和响应时,这些设置控制Burp怎样处理字体设置。
默认情况下,在每条响应中,能自动识别字体并正确显示出来的。
在开起Burp时,就避免了需要在命令行上设置一个特定的字体,在Burp里的同一个实例里,允许的你的工作中有多种不同字体的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BurpSuite 详细 教程 使用手册
![提示](https://static.bdocx.com/images/bang_tan.gif)