2018-2019-2 20189212 《网络攻防技术》第十一周作业

Burp Suite专项研究


**简介:**Brup Suite是用于攻击web应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。所有的工具都共享一个能处理并显示HTTP消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。 ##
 Burp Suite 工具箱
* **Proxy:**是一个拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。 * **Spider:**是一个应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。 * **Scanner[专业版]:**是一个高级的工具,执行后,它能自动地发现web应用程序的安全漏洞。 * **Intruder:**是一个定制的高度可配置的工具,对Web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing技术探测常规漏洞。 * **Repeater:**是一个靠手动操作来补发单独的HTTP请求,并分析应用程序响应的工具。 * **Sequencer:**是一个用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。 * **Decoder:**是一个进行手动执行或对应用程序数据者智能解码编码的工具。 * **Comparer:**是一个实用的工具,通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差异”。

 Brup 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专业版中,你可以保存整个组件工具的设置状态,在下次加载过来恢复你的工具。

1.搜索

[专业版]在Burp菜单上选择“search”后,会打开一个用起来非常简单的搜索对话框。
你可以设定一下搜索参数:
 搜索表达式:
  搜索是否区分大小写
  搜索的是简单的文本还是正则表达式
  搜索范围是否有限制范围
  搜索的结果是否随着HTTP消息的处理而动态更新
  是在哪种HTTP消息的位置上搜索(请求 vs 响应,消息头 vs 消息主体)使用哪种工具进行搜索,当你单击“go”时,搜索开始,在一个有序的表格里,将显示出每个与搜索有关的关键内容细节,在一个预览窗格里,你能看到所有的请求和响应,也包括匹配你强调的搜索项。通常上下文菜单可用于指定发起攻击的具体项目,也可将他们发送到其他工具里做进一步分析。

 Burp Proxy的使用

1.简介

  Burp Proxy是一个用来攻击和调试Web应用程序的交互式的HTTP/S代理服务器。他就像一个在浏览器和目标服务器之间的中介人,并允许用户拦截,查看和修改两个方向上的原始流量。
  Burp Proxy允许你通过监视和操纵应用程序传输的关键参数和其他数据来查找和探索应用程序的漏洞。通过以恶意的方式修改浏览器的请求,Burp代理可以用来进行攻击,如:SQL注入、cookie欺骗、提升权限、会话劫持、目录遍历、缓冲区溢出。拦截的传输可以被修改成原始文本,也可以是包含参数或者消息头的表格,也可以是十六进制形式,甚至可以操纵二进制形式的数据。在Burp代理可以呈现出包含HTML或者图像数据的响应消息。
  除了每一个请求的操纵外,Burp代理保持着一个完整的历史记录,包括浏览器发送的每一个请求,所有的操作,以及接受到的所有响应。你可以复原较早的请求,并修改后补发任何请求,还能以原始的形式或者WEB页面的形式来查看保存的响应。可以把两个方向上的整个会话记录到一个文件中,用来作进一步分析或者提供审查线索。
  在Burp Suite里,Burp代理是和其他工具紧密地集成在一起的。并允许把任意的请求和响应发送到其他工具里做进一步处理。通过一次单击,你可以把一个感兴趣的请求作为分析会话令牌的基础,或者进过人工修改后再发送,漏洞分析,或者使用 Burp Intruder进行一次自定义的自动攻击。

2.使用方式

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

3.拦截(Intercept)


  你可以使用快捷键ctrl+F 和ctrl+D 来代替“forward”和“drop”。
  通过单击其中一个可以使用的选项卡,能以几种形式来显示和分析每个请求和响应。随着适当的消息类型的显示,可用选项卡也会随之显示或消失:
  raw:这里显示的是纯文本形式的消息。在文本窗口的底部提供一个搜索和加亮功能,可以用它来快速地定位出消息中的感兴趣的字符串,如错误消息。在搜索的左边有一个弹出项,让你来处理大小写问题,以及是使用简单的文本搜索还是正则表达搜索。
  headers:这里以名称/值的组合来显示HTTP的消息头,并且还以原始的形式显示消息体。
  hex:这里允许你直接编辑消息的原始二进制数据。如果在文本编辑器里修改,某些传输类型(例如,使用MIME编码的浏览器请求的部分)包含的二进制数据可能被损坏。为了修改这些类型的消息,应使用十六进制。
  action:

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

  • 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:通过这些命令可以快速地添加拦截动作的规则来阻止拦截到的消息,这些消息和当前的消息有着相同的特征(如远程主机,资源类型,响应编码)

4.历史记录

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

  你可以通过单击历史记录表里的列标题对表格里的列里的内容进行排序。另外,如果你想按照内容类型列出请求,你就点击“MIME type”这一列。
  在历史记录表里,右击一个或多个选项,就会显示一个上下文菜单让你执行一些操作,包括修改目标范围,把这些选项发送到其他Burp工具,或者删除这些项:

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

 Burp Sider

Burp Spider简介:

  Brup Spider是一个映射web应用程序的工具。它使用多种智能技术对一个应用程序的内容和功能进行全面的清查。
  Brup Spider通过跟踪HTML和JavaScript以及提交的表单中的超链接来映射目标应用程序,它还使用了一些其他的线索,如目录列表,资源类型的注释,以及robots.txt文件。结果会在站点地图中以树和表的形式显示出来,提供一个清楚并非常详细的目标应用程序视图。
  Brup Spider能使你清楚地了解到一个web应用程序是怎么样工作的,让你避免进行大量的手动任务而浪费时间,在跟踪链接,提交表单,精简HTNL源代码。可以快速地确认应用程序潜在的脆弱功能,还允许你指定特定的漏洞,如SQL注入,路径遍历。

Brup Spider使用

  要对应用程序使用Brup Spider需要两个简单的步骤:
  1.使用Brup Proxy配置为你浏览器的代理服务器,浏览目标应用程序(为了节省时间,你可以关闭代理拦截)
  2.到站点地图的“target”选项上,选中目标应用程序驻留的主机和目录。选中上下文菜单的“spider this host/branch”选项。
  你也可以在任何Burp工具的任意请求或相应上使用上下文菜单上选择“spider this item”。当你发送一个站点地图的分支来 spidering,Spider会首先检查这个分支是都在定义好的spidering的范围内。如果不是,Burp会提示你是否把相关的URL添加到范围里。然后,Burp开始spidering,并执行下面的操作:
  在分支上,请求那些已被发现的还没被请求过的URL。
  在分支上,提交那些已被发现但提交URL错误的表单。
  重复请求分支上的先前收到的状态码为304的项,为检索到一个应用程序的新副本。对所有检索到的内容进行解析以确认新的URL和表单。只有发现新内容就递归地重复这些步骤。继续在所有的范围内spidering,直到没有新内容为止。

 Brup Scanner

Brup Scanner简介

  Brup Scanner是一个进行自动发现web应用程序的安全漏洞工具。他是为渗透测试人员设计的,并且它和你现有的手动执行进行的web应用程序半自动渗透测试的技术方法很相似。
  使用的大多数的web扫描器都是单独运行的:你提供一个开始URL,单击“go”然后注释这进度条的更新指导扫描结束,最后产生一个报告。Brup Scanner和这完全不同,在攻击一个应用程序是它和你执行的操作紧紧的结合在一起。让你细微控制着每一个扫描的请求,并直接反馈回结果。
  Brup Scanner可以执行两种扫描类型:
   1.Active scanning扫描器向应用程序发送大量的伪造请求,这些请求都是有一个基础请求衍生出来的,然后通过分析响应结果来查找漏洞特征。
   2.Passive scanning扫描器不发送他自己的任何新请求,只分析现有的请求和响应的内容,从这些信息中推断出漏洞。
  你可以在目标应用程序中使用两种不同方式:
   1.Manual scanning 你可以发送其他Burp工具的一个或多个请求,来对这些特定的请求执行主动或被动的扫描。
   2.Live scanning as you browse你可以配置扫描器来自动执行主动或被动的扫描那些你浏览应用程序时经过代理的请求。

2.主动扫描

  在这种扫描模式下,Burp使用应用程序的一个叫做“base request”单个请求,通过一些方法修改后,来触发一些漏洞存在的迹象。这些被修改过的请求被发送到应用程序,然后分析响应的结果。在许多情况下,根据初步探测的结果,会发送进一步的请求。这种操作模式会产生大量的恶意的请求,并导致应用程序妥协。你要谨慎地使用这种扫描模式,仅当得到应用程序的所有者允许时,并且警告过他们自动扫描会给他们的应用程序和数据带来影响。如果可能,扫描不用的系统,并在扫描前进行备份。
  对应用程序中的一直缺陷的漏洞的自动探测是很可靠的。Burp的主动扫描能力视为扫描器尽可能地可靠地查找到基于输入的漏洞而设计的。为了避免在其他地方产生的误报,Burp在它的输入上给了你自信,让你集中精力到那些需要提供人类经验和智慧的工作上。
  Brup主动扫描能确认的问题大体上可分为下面两类:
  1.在客户端上的输入漏洞,如:跨站点脚本,HTTP消息头注入,开放重定向。
  2.在服务器的输入漏洞,如:SQL注入,操作系统命令注入,文件路径遍历。

3.被动扫描

  在这种模式下,Brup不会向服务器发送任何新的请求。它只分析现存的请求和响应,并从中推断出漏洞。在你访问的任何授权应用程序,使用这种操作模式是安全和合法的。
  只使用这种被动的技术,Brup Scanner能发现几种漏洞,有:

  • 1.明文提交的密码。
  • 2.不安全的cookie属性,如丢失HttpOnly和安全标志。
  • 3.开放的cookie范围。
  • 4.跨站点脚本泄露Referer信息。
  • 5.自动填充的表单。
  • 6.SSL保护的缓冲区内容。
  • 7.目录遍历。
  • 8.提交的密码会在后面返回的响应中。
  • 9.不安全的会话令牌传输。
  • 10.信息泄露,如互联网IP地址,电子邮件地址,堆栈跟踪等。
  • 11.不安全的视图配置。
  • 12.不清楚的,没完成的,不正确或不标准的内容类型指示。

  在下面的一些情况,只进行被动的扫描是有好处的:
  1.因为被动扫描不必向应用程序发送任何新的请求,你就可以安全地用在重要的应用程序上,你可以完全地控制发送的每一个请求。
  2.有些应用程序对攻击的反应是很激烈的,当收到一个恶意的请求是,会终止你的会话或者锁定你的账号。在这种情况下,只能一次次地进行手工测试,这时你可以通过被动扫描来确认很多问题,而不会出现麻烦。
  3.如果你没被授权进行攻击一个目标,你可以像普通用户那样浏览应用程序使用被动扫描来确认漏洞。如果你提出了一个新的渗透测试方案,你可以通过被动扫描你的目标来获得对安全状态的了解。甚至在你进行测试之前,会希望发现一些公布的问题。

4.扫描163网站

 Burp Intruder

1.Burp Intruder简介

  Burp Intruder是一个对web应用程序进行自动化的自定义攻击的工具。
  Burp Intruder不是一个点击工具。要想高效地使用它,你需要明白目标应用程序是怎么样工作的,以及一些HTTP协议的知识。在你使用Burp Intruder进行攻击之前,你需要调查清楚目标应用程序的功能和结构,尤其是在浏览器和服务器直接传输的许多HTTP消息。你可以使用标准浏览器和Burp Proxy拦截和查看应用程序产生的请求和响应。当你确认了一些感兴趣的HTTP请求需要更严格的检查是,你就已经准备好使用Burp Intruder。Burp Intruder是高度可配置的,被用来在广范围内进行自动化攻击。你可以使用Burp Intruder方便地执行许多任务,包括枚举标识符,获取有用数据,漏洞模糊测试。合适的攻击类型取决于应用程序的情况,可能包括:SQL注入,跨站点脚本,缓冲区溢出,路径遍历,暴力攻击认证系统,枚举,操纵参数,拖出隐藏的内容和功能,会话令牌测序和会话劫持,数据挖掘,并发工具,应用层的拒绝服务式攻击。Burp Intruder有许多预设的攻击“有效符合”列表。它包含了许多工具,这些工具动态地产生适合应用程序内的特定机制的攻击载体。外部的文件也可被加载并纳入到Burp Intruder。
  核心动作就是通过这些HTTP请求重复地攻击。在调查阶段确认有基础请求派生的请求。Burp Intruder以特殊方式操纵这些基础请求来确认和探测应用程序漏洞。它使用一个或多个有效载荷来替换基础请求中的一部分来实现这个过程。可以为每次攻击配置时间和执行方案。同时可以使用多线程来产生请求。限制请求会防止入侵检测系统的探测。拒绝服务模型可以使用请求来轰炸服务器,这时会忽略所有接收到的响应。
  当一次执行时,细节结果表格也就产生,显示出从服务器上接收到的每个请求的响应。结果里包含了所有的相关信息,可以使用它来查明一些感兴趣或成功的响应。除了常见的每次攻击的标准结果,在运行时可以对这些结构钢执行许多自定义的测试,这些结果同样被记录下来。

2.配置Burp Intruder

  Burp Intruder控制面板可以在它的数字选项中同时配置一个或多个攻击。你可以使用Intruder菜单创建一个新的选项或者重命名现存的选项。
  在一些子选项(target、positions,payloads,options)里进行每次攻击配置。创建一个新攻击的最简单的方法是通过其他Burp工具定位相关的基础请求,然后使用上下文菜单里的“send to intruder”。

3.目标选项

  这个选项是用来配置目标服务器的细节:

  “host”区域是用来指定目标服务器的IP地址或者主机名。“port”区域是用来指定HTTP/S服务的端口号。“Use HTTPS”框是用来是否使用HTTPS的。

4.位置选项

  这个选项是用来配置在攻击力产生的所有HTTP请求的模板:(建议自行在网上搜索模板)

  主文本编辑器是用来设置基础请求的内容,以及在攻击时,标记出有效负荷插入到单个HTTP请求的位置。

5.有效负荷选项

  这个选项是用来配置一个或多个有效负荷的集合。如果定义了“cluster bomb”和“pitchfork”攻击类型,必须为每个定义的有效负荷位置配置一个单独的有效负荷。
  使用“payload set”下拉菜单选择要配置的有效负荷。

  对于每个有效负荷集合,都会定义一个有效负荷“源”来使用,并且在每个有效负荷上执行多种附加的处理。在Burp Intruder中有大量的可用的有效负荷源。其中的一些事高度可配置的,并且提供了许多自定义攻击。

 参考资料

《Burp Suite 实战指南》
《Burp Suite 使用手册》

posted @ 2019-05-12 20:28  20189212林昊  阅读(144)  评论(0编辑  收藏