Burpsuite之Burp Collaborator模块介绍

Burp Collaborator.是从Burp suite v1.6.15版本添加的新功能,它几乎是一种全新的渗透测试方法。Burp Collaborator.会渐渐支持blind XSS,SSRF, asynchronous code injection等其他还未分类的漏洞类型。

本文主要介绍使用Burp Collaborator.对这几种类型漏洞进行探测。

概念:In-band attack与 out-band attack(带内与带外攻击)

首先介绍两个概念,带内与带外的区别核心在于是否使用不同的通信通道。

在一次攻击当中,只有一条通道,属于in-band(带内)攻击:

现在同一次攻击下,不止一条信道,则属于out-band(带外)攻击:

常规web测试模型

简单的讲,常规的web测试模型就是我们向目标发送payloads,然后分析目标返回的数据。

这个模型很容易建立并且容易理解,但是这个简单的模型漏掉很多bugs,比如:

  1. “super-blind” injection。”blind SQL injection”表示当一个payload破坏了正常的sql查询然而应用程序返回的内容没有任何有帮助的错误信息。但是在有些情况下,一个成功的注入在目标应用的返回里面是完全看不到区别的,意思就是,不论返回的内容还是返回的时间,都没有任何区别。举个例子,注入asynchronous logging function就是一个典型的情况
  2. 需要存储数据的情况。比如存储型xss理论上通过先提交payloads然后观察返回值是可以发现的。但是其他的存储型bugs很难发现,比如,stored (or second-order) SQL injection,数据先是以安全的方式存储在数据库中,然后再从数据库取出再拼接sql语句。要使用常规渗透模型发现这种漏洞,我们需要爆破每一种请求的组合,要先发送第一个request请求,然后在发送第二个request请求,然后观察返回值。
  3. 我们还会漏掉一种漏洞,一次成功的攻击只发生在应用内部,对攻击者是不可见的。比如,存储型xss攻击成功要求管理员访问管理地址。
  4. 还有很多涉及到内部系统与外部资源交互的情况,比如SSRF和RFI等漏洞。

加入Burp Collaborator后的web测试模型

Burp Collaborator 给传统web测试模型添加了一个新的部分,Burp Collaborator的功能有:

  • 捕捉由Burp发出的payloads触发的目标与外部系统发生数据交互行为
  • 把Burp Collaborator与目标数据交互行为产生的返回数据传回攻击者
  • 对很多新型漏洞进行可靠的探测。 

Burp Collaborator模块包含如下特征:

  • Burp Collaborator 服务器通常运行在公网上。
  • 它使用自己的专用域名,并且这个服务器已注册为该域名的权威DNS服务器。
  • 它提供一个DNS服务,可以响应任何对他的dns请求
  • 它提供HTTP/HTTPS 服务,使用一个有效的SSL证书
  • 将来可以添加其他的服务,比如smtp和ftp。

探测external service interaction(外部服务交互攻击)

与外部服务交互行为发生在一个payload提交到目标应用上,导致目标通过某个网络协议和一个外部的域名进行信息交互。

这种行为有时候被称为SSRF,我们更偏向于称之为外部服务交互(”external service interaction”)攻击,因为这种情况里面,很多行为不仅仅通过HTTP协议触发,还有SMB或者FTP等。

外部服务交互可以代表一个严重的漏洞,因为他可以允许应用服务器作为一个代理来攻击其他的服务器。这包裹公网上面的第三方系统,同一个组织下的内部系统或者监听在本地的服务。根据网络结构,这可以将内部容易被攻击的系统暴露给外部的攻击者。

Burp payload包含Brup Collaborator主域名的随机子域名列表。当一个基于HTTP的外部服务交互攻击发生的时候,Collaborator服务器将会收到指定子域名的一个DNS查询。接收到DNS查询足够确认存在问题。如果一个payload以http://…开头只导致了一个DNS交互,那么几乎可以确定目标服务器阻止了对外http请求。在这种情况下,后续的攻击可以针对其他组织服务或目标其他IP。因为这个原因,Burp分开报告触发到的DNS和HTTP交互行为。

在Burp的issue advisory中,Burp报告中显示了尝试让目标服务器进行外部服务交互行为的请求和Collaborator server交互的所有细节。

探测out-of-band resource load(带外资源加载)

Out-of-band resource load发生的情况是将payload发送到目标应用上面导致目标先尝试通过一个域名获取内容,然后将获取到的内容整合到原始的返回数据之中。

这种行为有时候归类为为远程文件包含。但是远程文件包含这个名词有PHP文件包含等含义。我们更偏向于称之为” out-of-band resource load”攻击,因为这种情况里面,有时候应用从外部获取内容然后将其放入应用的返回结果当中。

Out-of-band resource load攻击是一种威胁很高的问题,一个攻击者发送payload,然后从可以交互的应用中获取数据。另外,这也可以导致暴露第三方系统或者敏感的内部系统。

另外,应用程序处理out-of-band content时暴露了一些重要而且不传统的攻击面。

Burp会详细报告Collaborator server产生的的交互行为信息,并展示内容如何从Collaborator反向传输到应用带内再返回给用户。

探测out-of-band XSS(带外XSS)

在外部资源加载漏洞已经确认存在的情况下,这时候很可能也存在out-of-band XSS

Out-of-band XSS不属于通常的XSS分类下

  • 不是反射型,payload并不是在当前in-band 请求中发送给目标应用。
  • 不是存储型,payload并没有存储在目标应用当中
  • 不是DOM XSS:并没有已有的JavaScript。

探测”super-blind” injection漏洞
在一个code injection 攻击不能触发任何可以被探测到的信息的情况下,我们可以在注入成功的时候通过触发一次外部服务交互,从而确认注入成功。

可以注入的payload类型包括SQL注入,XXE注入,OS命令注入等。使用这些payloads的时候,Burp不需要从目标服务器获取任何返回的信息,但是可以成功的探测到注入漏洞。在这种情况下,只需要一次DNS查询就可以确定注入漏洞存在。因为目标服务器需要进行域名查询所以总是允许外部DNS查询。

探测 out-of-band 注入漏洞

当探测到任何类型的外部服务交互,我们可以使用Collaborator server的返回数据来向目标服务器传输传统的输入型payloads。由于目标应用会处理Collaborator的返回数据,常规的漏洞就会存在,包括SQL注入,server-side code execution等。

这种漏洞可能会很常见,毕竟当前还没有完全被测试过。

探测stored out-of-band 漏洞

目标应用程序会处理从Collaborator server获取的数据并存储。

探测stored out-of-band resource load 很直接:

基于上图的行为,我们可以测试stored out-of-band XSS漏洞:

探测blind stored类型的漏洞

我们已经描述了如何探测”super-blind”注入漏洞,同样我们也可以探测那种先需要被存储下来,然后再被目标取出从而产生的漏洞。与Collaborator server之间的延迟的交互行为能让我们发现很多这种存储型的漏洞。

比如,XSS盲打(blind stored xss)这个漏洞,攻击者是无法探测到攻击是否成功,因为攻击者没有访问后台的权限。但是我们可以先提交存储型xss payloads,然后使用Collaborator server触发交互行为。

在这个例子中,当应用管理员访问被保护的页面,Burp通过Collaborator server可以确定存储型攻击发生。并且,通过从Collaborator获的HTTP Refer可以知道管理的管理地址(即后台地址)。

支持其他协议类型

上文中的漏洞类型主要涉及DNS和HTTP协议,事实上,我们也可以使用其他协议触发Collborator和目标应用交互行为:

  • 通过SMTP协议注入mail头进行探测
  • 触发一次SMB共享连接并且抓取NTLM handshake
  • 触发一次SSH连接然后抓取认证凭据。

原文:https://portswigger.net/burp/

首发:https://www.91ri.org/

译于2016.7.1。

时间: 2024-11-12 18:25:48

Burpsuite之Burp Collaborator模块介绍的相关文章

Burp Suite 模块介绍

1.代理--Burp Suite带有一个代理,通过默认端口8080上运行,使用这个代理,我们可以截获并修改从客户端到web应用程序的数据包. 2.Spider(蜘蛛)--Burp Suite的蜘蛛功能是用来抓取Web应用程序的链接和内容等,它会自动提交登陆表单(通过用户自定义输入)的情况下.Burp Suite的蜘蛛可以爬行扫描出网站上所有的链接,通过对这些链接的详细扫描来发现Web应用程序的漏洞 . 3.Scanner(扫描器)--它是用来扫描Web应用程序漏洞的.在测试的过程中可能会出现一些

最新Burpsuite Pro v1.7.03 介绍和破解版下载

0x00 介绍 Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程.所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架. 0x01 特点: 1 2 3 4 5 6 7 8 9 10 11 1.Target(目标)——显示目标目录结构的的一个功能 2.Proxy(代理)——拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,

BurpSuite系列(三)----Spider模块(蜘蛛爬行)

一.简介 Burp Spider 是一个映射 web 应用程序的工具.它使用多种智能技术对一个应用程序的内容和功能进行全面的清查. Burp Spider 通过跟踪 HTML 和 JavaScript 以及提交的表单中的超链接来映射目标应用程序,它还使用了一些其他的线索,如目录列表,资源类型的注释,以及 robots.txt 文件.结果会在站点地图中以树和表的形式显示出来,提供了一个清楚并非常详细的目标应用程序视图. Burp Spider 能使你清楚地了解到一个 web 应用程序是怎样工作的,

Some标准模块介绍

IEEE 802.11 无线局域网概述 无线局域网的协议行为建模 IEEE 802.11 无线局域网 MAC 的输入接口 输入接口参数描述如下: Physical Characteristics 物理特征: Rts Threshold (Rts 门限) -- -- X.25模块介绍 OPNET 自带的 X.25 协议模块有:网络层模块( x25_dte_root. x25_dte_chan. x25_dce_root和 x25_dce_chan)和物理层模块( Lapb).基于 X.25 协议的

第三百二十四节,web爬虫,scrapy模块介绍与使用

第三百二十四节,web爬虫,scrapy模块介绍与使用 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. Scrapy 使用了 Twisted异步网络库来处理网络通讯.

网上图书商城项目学习笔记-031图书管理模块介绍及添加图书

一.流程分析 1.图书管理模块介绍 2. 3. 4.添加图书第一步 5.添加图书第二步 二.代码 1.view层 (1)body.jsp 1 <body> 2 <h1 align="center">图书管理</h1> 3 <p align="center"> 4 <a href="<c:url value='/admin/AdminBookServlet?method=addPre'/>&q

IIS7 常用模块介绍说明

1.1.0   IIS常用的功能模块介绍: 1)         静态内容:可发布静态 Web 文件格式,比如 HTML 页面和图像文件. 2)         默认文档:允许您配置当用户未在 URL 中指定文件时供 Web 服务器返回的默认文件. 3)         目录浏览:允许用户查看 Web 服务器上的目录的内容.当用户未在 URL 中指定文件以及禁用或未配置默认文档时,使用“目录浏览”在目录中提供自动生成的所有目录和文件的列表.建议将该功能禁用. 4)         HTTP错误:

瘸腿蛤蟆笔记28-cocos2d-x-3.2 Box2d物理引擎collision模块介绍

上篇回顾 本篇名言:绝不测量山的高度─除非你已到达顶峰,那时你就会知道山有多低. [哈马绍] 上篇中,我们学习了Box2d物理引擎的三大模块之一的common模块,该模块主要包含设置,内存管理和向量数学. 这次蛤蟆接着学习collison模块. 理论介绍 这个collision模块包括了shapes和函数.同时包括一个动态树和broad-phase(蛤蟆不知道怎么解释这个)用于加速碰撞系统.这个模块设计的时候是在动态系统之外使用的.        Shape 这里的shapes描述了碰撞几何,可

python 的日志logging模块介绍

最近在写使用python生成App的程序,发现直接用print打印信息不太方便和规范,所以使用了logging日志模块,简单记录下用法,正式项目中应该使用logging.config配置日志,可以实现类似log4j的日志文件大小限制,格式控制,输出位置等. 1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('This is info message') logging.warning(