什么是Burp Suite

Burp Suite 是用于攻击web 应用程序的集成平台。它包含了许多Burp工具,这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。这些工具设计了许多接口,以促进加快攻击应用程序的过程。所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。它是一个基于Java的Web渗透测试框架,已成为信息安全专业人员使用的行业标准工具套件。 Burp Suite可帮助您识别漏洞并验证影响Web应用程序的攻击媒介。
burpsuite的模块几乎包含整个安全测试过程,从最初对目标程序的信息采集,到漏洞扫描及其利用,多模块间高融合的配合,使得安全测试的过程更加高效。
在(安全人员常用工具表)[http://sectools.org/]中,burpsuite排在第13位,且排名在不断上升,由此可见它在安全人员手中的重要性。

功能模块

  • Proxy模块
  • Spider模块
  • Scanner模块
  • Intruder模块
  • Repeater模块

Proxy模块

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

Intercept选项

  • Forward:用于发送数据。当把所需要的HTTP请求编辑编辑完成后,手动发送数据。
  • Drop:将该请求包丢弃。
  • Intercept is off/on:拦截开关。当处于off状态下时,BurpSuite会自动转发所拦截的所有请求;当处于on状态下时,BurpSuite会将所有拦截所有符合规则的请求并将它显示出来等待编辑或其他操作。
  • Action:功能菜单,与右键菜单内容相同,在这可以将请求包发送到其他的模块或者对数据包进行其他的操作,菜单中的详细功能我们会在后续课程中陆续说明。

http history选项

详细信息:(#)请求索引号、Host(主机)、Method(请求方式)、URL(请求地址)、Params(参数)、Edited(编辑)、Status(状态)、Length(响应字节长度)、MIME type(响应的MLME类型)、Extension(地址文件扩展名)、Title(页面标题)、Comment(注释)、SSL、IP(目标IP地址)、Cookies、Time(发出请求时间)、Listener port(监听端口)。

WebSockets history选项

这个版块用于记录WebSockets的数据包,是HTML5中最强大的通信功能,定义了一个全双工的通信信道,只需Web上的一个 Socket即可进行通信,能减少不必要的网络流量并降低网络延迟。

Options选项
该版块主要用于设置代理监听、请求和响应,拦截反应,匹配和替换,ssl等。
以代理监听(Proxy Listeners)为例:

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

  • add:添加一个新的代理地址。
  • binding:新建一个代理,bind to port-绑定端口号 ,bind to address -绑定ip地址
  • request hadning:这些设置包括选项来控制是否BurpSuite重定向通过此侦听器接收到的请求:
  • Redirect to host - 如果配置了这个选项,Burp会在每次请求转发到指定的主机,而不必受限于览器所请求的目标。需要注意的是,如果你正使用该选项,则可能需要配置匹配/替换规则重写的主机中的请求,如果服务器中,您重定向请求预期,不同于由浏览器发送一个主机头。
  • Redirect to port - 如果配置了这个选项,Burp会在每次请求转发到指定的端口,而不必受限于浏览
  • Force use of SSL - 如果配置了这个选项,Burp会使用HTTPS在所有向外的连接,即使传入的请求中使用普通的HTTP。您可以使用此选项,在与SSL相关的响应修改选项结合,开展sslstrip般的攻击使用Burp,其中,强制执行HTTPS的应用程序可以降级为普通的HTTP的受害用户的流量在不知不觉中通过BurpProxy代理。
  • 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格式)呈现给你的浏览器。如果应用程序使用它需要特定的服务器证书(例如一个给定序列号或证书链)的客户端应该使用这个选项。
  • edit:编辑选中的代理地址。相关选项类似于add,不再叙述。
  • remove:删除选中代理地址。

Spider模块

应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。

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

  • Spider Status:用来开始和停止 Burp Spider,监视它的进度。
  • Spider running:运行蜘蛛。这里显示的一些 Spider 进度的指标,让你能看到剩余的内容和工作量的大小。
  • Clear queues:清除队列。停止并清除正在运行的爬行线程。
  • 工作量内容:
  • Requests made:已经发出的请求
  • bytes transferred:传输的字节
  • requests queued:未发送的请求
  • forms queued:排队的表格
  • Spider Scope:精准的定义 spidering 的范围。
  • Use suite scope [defined in target tab]:使用套件范围[在目标标签中定义]- Use custom scope:使用自定义的范围。选择该项后会出现详细的配置列表,如图:

Options选项
这个选项里包含了许多控制 Burp Spider 动作的选项。

  • Crawler Settings:爬虫设置。设置控制蜘蛛爬行的基本Web内容。
  • check robots.txt:检测robot.txt文件。选择后Burp Spider会要求和处理robots.txt文件,提取内容链接。
  • Detect custom "not found" responese:检测自定义的'not found'响应。打开后Burp Spider会从每个域请求不存在的资源,编制指纹与诊断“not found”响应其它请求检测自定义“not found”的响应。
  • ignore links to non-text content:忽略非文本内容的连接。这个选项被选中,Spider 不会请求非文本资源。使用这个选项,会减少 spidering 时间。
  • request the root of all directories:请求所有的根目录。如果这个选项被选中,Burp Spider 会请求所有已确认的目标范围内的 web 目录,如果在这个目标站点存在目录遍历, 这选项将是非常的有用。
  • make a non-parameterized request to each dynamic page:对每个动态页面进行非参数化的请求。如果这个选项被选中,Burp Spider 会对在范围内的所有执行动作的 URL 进行无参数的 GET 请求。如果期待的参数没有被接收, 动态页面会有不同的响应,这个选项就能成功地探测出额外的站点内容和功能。
  • Maximum link depth:这是Burp Suite在种子 URL 里的浏览”hops”的最大数。0表示让Burp Suite只请求种子 URL。如果指定的数值非常大,将会对范围内的链接进行无限期的有效跟踪。将此选项设置为一个合理的数字可以帮助防止循环Spider在某些种类的动态生成的内容。
  • Maximum parameterized requests per URL:请求该蜘蛛用不同的参数相同的基本URL的最大数目。将此选项设置为一个合理的数字可以帮助避免爬行“无限”的内容。

Scanner模块

高级工具,执行后,它能自动地发现web 应用程序的安全漏洞。

Scan queue选项
扫描队列,这里将显示扫描队列的状态 进度 结果等。

  • 主要包含以下内容:
    1. 索引号的项目,反映该项目的添加顺序。
    1. 目的地协议,主机和URL 。
    1. 该项目的当前状态,包括完成百分比。
    1. 项目扫描问题的数量(这是根据所附的最严重问题的重要性和彩色化) 。
    1. 在扫描项目的请求数量进行。
    1. 网络错误的数目遇到的问题。
    1. 为项目创建的插入点的数量。

Linve scanning选项
实时扫描可让您决定哪些内容通过使用浏览器的目标应用,通过BurpProxy服务器进行扫描。您可以实时主动扫描设定live active scanning(积极扫描)和live passive(被动扫描)两种扫描模式。

  • Live Active Scanning:积极扫描。当浏览时自动发送漏洞利用代码。
  • Don't scan:不开启扫描。
  • Use suite scope[defined in target tab]:如果你已经配置了一套全范围的目标为你目前的工作,那么你可以简单地通知Burp主动扫描落在该范围内的每个请求。
  • Use custom scope:自定义扫描。选中后会出现编辑列表,可以使用URL匹配规则定义自定义范围。
  • Live Passive Scanning:被动扫描。只分析流量不发送任何请求。
  • Don't scan:不开启扫描。
  • Scan everything:扫描所有。扫描所有经过代理的流量。
  • Use suite scope[defined in target tab]:如果你已经配置了一套全范围的目标为你目前的工作,那么你可以简单地通知Burp主动扫描落在该范围内的每个请求。
  • Use custom scope:自定义扫描。选中后会出现编辑列表,可以使用URL匹配规则定义自定义范围

Issue definitions选项
漏洞列表,列出了burp可以扫描到的漏洞详情。

这里详细说明了常见漏洞的介绍,这里不做详细介绍。

Options选项
包含Burp扫描选项进行攻击的插入点,主动扫描引擎,主动扫描优化,主动扫描区和被动扫描区域。

  • Attack Insertion Points:攻击的插入点。设定将攻击放在哪个位置。
  • URL parameter values:将攻击代码放在URL中。
  • Body parameter values - 将攻击代码放在正文中,包括标准形式生成的参数参数值,属性的多重编码的参数,如上传的文件名, XML参数值和属性,和JSON值。
  • Cookie parameter values - 将攻击代码放在HTTP Cookie的值中。
  • Parameter name - 任意添加的参数的名称。
  • HTTP headers - 在引用页和用户代理标头的值。测试这些插入点通常可以检测如SQL注入或跨站脚本持续在日志记录功能的问题。
  • AMF string parameters- 内AMF编码的邮件的任何字符串数据的值。
  • REST-style URL parameters - URL的文件路径部分中的所有目录和文件名令牌的值。测试每一个插入点可以并处显著开销,如果你相信应用程序使用这些位置传送参数数据,才应使用。
  • Cheange Parameter locations (causes many more scan requests):修改参数的位置(会产生更多的扫描请求),可以一些防火墙或过滤器。
  • URL to body
  • URL to cookie
  • Body to URL
  • Cookie to URL
  • Cookie to body
  • Use Nested Insertion Points:使用嵌套插入点。嵌套的插入时,会使用一个插入点的基值包含可识别的格式的数据。 例如,一个URL参数可能包含Base64编码数据,并且将解码后的值可能又包含JSON或XML数据。与使用启用嵌套插入点的选项,Burp会为输入在每个嵌套级别中的每个单独的项目适合的插入点。
  • Maximum Insertion Points Per Request:限制每个请求的最大插入点。
  • Skip server-side injction tests for these parameters / skip all tests for these parameters :跳过列表中参数的测试。设定让您指定请求参数的Burp应该跳过某些测试。

Intruder模块

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

Target
用于配置目标服务器进行攻击的详细信息。

  • Host:这是目标服务器的IP地址或主机名。
  • Port:这是目标服务的端口号。
  • Use HTTPS:这指定的SSL是否应该被使用
    在BurpSuite任何请求处,右键菜单选择“Send to intruder”选项,将自动发送到此模块下并自动填充以上内容。

Positions
设置Payloads的插入点以及攻击类型(攻击模式)。

  • attack type:攻击模式设置
  • sniper:对变量依次进行破解。多个标记依次进行。
  • battering ram:对变量同时进行破解。多个标记同时进行。
  • pitchfork:每一个变量标记对应一个字典,取每个字典的对应项。
  • cluster bomb:每个变量对应一个字典,并且进行交集破解,尝试各种组合。适用于用户名+密码的破解。
  • add:插入一个新的标记
  • clear:清除所有的标记
  • auto:自动设置标记,一个请求发到该模块后burpsuite会自动标记cookie URL等参数
  • refresh:如果必要的话,这可以要求模板编辑器的语法高亮。

Payloads
设置payload,配置字典。

Options
此选项卡包含了request headers,request engine,attack results ,grep match,grep_extrack,grep payloads和redirections。你可以发动攻击之前,在主要Intruder的UI上编辑这些选项,大部分设置也可以在攻击时对已在运行的窗口进行修改。

Repeater模块

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

Repeater是用于手动操作和发送个别HTTP请求,并分析应用程序的响应一个简单的工具。您可以发送一个内部请求从Burp任何地方到Repeater,修改请求并且发送。

  • 可以从Proxy history、site map、Scanner等模块中右键菜单send to repeater发送到repeater,对页面数据进行修改发送。
  • 点击go,发送请求,右边响应请求。
  • 可以通过“<“和”>“来返回上一次和下一个操作。
  • 单击”x“可以删除当前测试请求页面。
  • 底部的功能用于搜索条件,可以用正则表达式,底部右边显示匹配结果数。
    该模块的设置在菜单栏 Repeater中,主要选项如下:
  • Update Content-length:更新头部长度。
  • Unpack gzip/deflate:该选项控制Burp是否自动解压缩在收到的答复的gzip和deflate压缩内容。
  • Follow redirections:在遇到重定向时Burp该怎么处理
  • Never:不会跟随任何重定向。
  • On-site only:中继器将只跟随重定向到使用相同的主机,端口和协议的URL。
  • In-scope Only:中继器将只跟随重定向到的目标范围之内的URL。
  • Always:中继器将跟随重定向到任何URL任何责任。
  • Process cookies in redirections:当被重定向后是否提交cookie。
  • View:设置响应/请求版块的布局方式。
  • Action:形同于右键菜单。