Burp Collaborator 使用总结

0x00:使用原因

我们在做渗透测试的时候,经常会遇到这种情况,测试跨站可能有些功能插入恶意脚本后无法立即触发,例如提交反馈表单,需要等管理员打开查看提交信息时才会触发,或者是盲注跨站,盲打 XSS 这种。再例如 SSRF,如果程序不进行回显任何信息,而只提示你输入的是否合法,那么也无法直接判断程序存在 SSRF 漏洞,我们可以叫盲 SSRF。再例如 XXE,引入外部文件时,如果程序也不返回任何信息和引用文件的内容,而只提示输入的是否有误,那么也无法直接判断程序是否存在 XXE 漏洞,我们也可以叫盲 XXE。总之,程序不进行详细的回显信息,而只是返回对或者错时,我们都可以叫它盲。

解决办法是,我们需要一个外部的独立的服务器,可以通过域名 url 进行访问。然后在测试盲跨站插入恶意脚本时带上这个服务器的地址,在测试盲 SSRF 时读取的文件 url 写我们这个服务器的地址,在测试盲 XXE 时引入的外部实体地址也写我们这个服务器的地址。如果存在上述的这些问题,那么目标服务器就会去访问我们自己的服务器,我们自己服务器要做的就是记录别人访问自己的信息,记录其发送内容相应内容等,因为目标服务器不会给前台返回任何信息,而在和我们外部服务器交互时,我们外部服务器会记录其交互的过程和内容,从而有利于我们判断漏洞的存在。

明白原理后,Burp 给我们提供了这个外部服务器,叫 Collaborator,对于 Collaborator 服务器,我们有两种使用方式,第一个是使用 burp 官方提供的,第二个是自己搭建。本文章记录 burp 官方提供的使用方法,至于自己搭建如果大家感兴趣可以在网上搜索相关的教程内容。

0x01:Collaborator 介绍

对于 Collaborator 服务器,我们这里简单介绍下它应该拥有哪些功能。首先它要能捕捉到 burp 发出的 payload 触发目标与外部系统发生数据的交互行为,其次它自己与目标产生交互的数据要能够返回到 burp,也就是返回给攻击者,也就是我们。

对于 Collaborator 服务器,我们这里再简单的介绍下它应该有哪些服务,首先它是公网 ip,其次它要有自己的域名,并且这个服务器要注册为该域名的权威 dns 服务器。然后这个服务器要提供 dns 服务,并且可以相应任何对它的 dns 请求。最后它需要提供 http 和 https 服务,且需要使用一个有效的 ssl 证书。对于为什么要提供 dns 和 http、https 服务很好理解,payload 如果可以执行或者可以允许远程加载,那么就需要用 dns 来解析我们的域名,而产生的交互则需要 http 和 https 来提供。

0x02:Collaborator 原理

我们知道了使用原因和其具有的功能后,我们再来简单看下它的原理,首先,我们先来看下平时的测试过程,如下图。

请输入图片描述

平时测试时,我们会像服务器提交一个 payload,而服务器响应给我们相关的 response 信息。大家都叫它带内攻击,这些理论的东西,我们简单理解就好,这里我们就理解成单挑通信的通道为带内攻击,也就是整个测试过程或者说是交互过程,中间没有其外部的服务器参与,只有自己和目标服务器,那么就叫带内。而我们一般的测试如果称为带内攻击,那么 Collaborator 服务器用来测试盲的各种漏洞的话,则需要我们外部的独立服务器参数,也就是带入了外部的服务器,我们叫它带外攻击。这里简单的提了一下这个带内和带外,我们只要理解其过程即可。带外流程图如下。

请输入图片描述

以上就是 collaborator,也就是带外攻击的大体流程,其实就是在测试的过程中目标服务器和外部的服务器有了交互,下面再来看一张更详细的图。

请输入图片描述

上面这个图可以大体的代表 collaborator 的大体工作流程,首先 burp 发送 payload 给目标程序,以上图为例,param 存在漏洞注入点,其 payload 为外部的服务器 url 地址,随后目标程序若进行解析或则引用调用等,则会去访问这个地址,而这个地址是我们的 collaborator 服务器,所以 collaborator 会记录其访问的请求信息以及响应信息和 dns 的信息。而当 burp 发送 payload 后,就会不断的去问 collaborator 服务器,你收到我发送的 payload 交互了么,这时 collaborator 就会将交互信息告诉 burp,burp 最后进行报告。

以上就是 collaborator 的大体工作流程,最后我们再说两个理论性的东西,一个是 burp 的 collaborator 地址,当使用 burp 的 collaborator 时,burp 会提供一个 url 地址,这个地址是 burp 的一个二级域名。第二个是轮询,也就是我们上面提到的,burp 发送 payload 后会不断的问 collaborator 是否收到我发生的 payload 交互信息,例如 10s 问一次,我们可以叫它轮询,其实叫什么无所谓,我们理解这个过程即可。

0x03:Collaborator 使用

对于 burp 的 collaborator,好像是 1.7 几以后自带,我这里没有,所以是通过安装插件来实现的,直接到 burp 的 extender 下的 bapp store 找到 Collaborator 安装即可。安装后,首先需要设置下我们使用的服务器是官方默认提供的,在 project options-misc-burp collaborator server 下,选择第一个默认官方服务即可,第二个是关闭 collaborator,第三个是使用自己的服务器。如下图。

请输入图片描述

设置好后,我们可以通过工具栏的 burp 下的 burp collaborator client 来运行,如下图。

请输入图片描述

打开 collaborator 插件后,点击 copy to clipboard 来复制其提供的 payload url,如下图。

请输入图片描述

number to generate 是生成的数量,下面的 poll now 按钮是轮询时间,点击 copy to clipboard 复制其提供的 payload url 后,就可以直接在要测试的点粘贴即可,如果目标服务器有交互,则 collaborator 会有响应信息。且这个 payload url 每次复制其二级域名都会随机生成。

0x04:盲 XXE 测试

我这里没有找到盲的 XXE 漏洞示例,所以就拿 bwapp 的 xxe 做演示了,bwapp 的 xxe 是有回显信息的,我们先来看下它的原始请求包。

请输入图片描述

原始请求发送的 xml 内容,其 login 的名称会进行回显,这里我们把它当作没有任何回显信息,只返回 true 和 false 的话,我们用 collaborator 来进行测试,首先修改 xml 的内容,加入一个变量值为外部的服务器 url,然后进行发送,这时 collaborator 会不断轮询去问交互结果,而结果会在 collaborator 中进行显示,如下图。

请输入图片描述

上图画绿线的就是 collaborator 提供的 payload url,我们在原始的内容上加入了 entity 实体变量 test,值为 payload url,这时 go 发送后,collaborator 捕获的交互信息如下。

请输入图片描述

上图是 request 的内容,host 的是我们的 payload url,请求后,我们再切换到 response 栏查看,内容如下图。

请输入图片描述

payload url 请求会返回一串随机内容,我们可以看到已经成功的进行了响应,说明目标服务器进行了外部的请求和交互,那么对于盲 xxe 来说,我们可以证明存在此问题。

0x05:盲 SSRF 测试

SSRF 在加载外部文件时,若没有进行严格过滤,则可导致任意文件加载,若加载文件而不反悔文件的内容,也不反悔任何详细的信息,那么对于这种盲 SSRF,我们也可以用 collaborator 进行测试,只要加载的请求替换成我们的 payload url 即可。这里还以 bwapp 的 SSRF 为例,bwapp 的 SSRF 也是有回显信息的,我们还把它当成没有任何提示的盲来进行演示。

首先还是先来看下原始的请求数据包,内容如下图。

请输入图片描述

对于 url 中的 language 字段引用的文件名称,可以随意进行替换,也算作是文件包含问题,我们把他换成 payload url 后进行提交,此时 collaborator 会显示出其交互的详细信息,resquest 如下图。

请输入图片描述

可以看到目标服务器进行了 dns 解析了我们的域名,然后 http 进行了访问,response 信息如下图。

请输入图片描述

0x06:盲 XSS 测试

同样的,我们也可以用 collaborator 来进行盲跨站的测试,使用场景例如盲打 xss,提交表单等,若一个平台的提交表单功能,提交内容插入恶意脚本后,提交后台可能不会立即生效,需要等管理员访问相关的页面才会执行,那么我们无法判断是否存在存储跨站的问题,这时使用 payload url 后,collaborator 会不断的进行轮询,只要管理员进行了访问,collaborator 就会捕捉到然后返回到 burp。

我们这里还以 bwapp 的 stored xss blog 为例,这里的脚本提交后就会在列表中显示并执行,也是有回显的,我们这里还是以盲跨站来测,首先在提交内容处,插入 script 标签,src 为我们的 payload url,如下图。

请输入图片描述

插入后我们查看元素可以发现,脚本内容已经插入成功,如下图。

请输入图片描述

因为插入的时候就会执行一次,而我们浏览页面的时候又执行了一次,所以 collaborator 会又两条记录信息,这里我们当成盲 xss 来测,如果插入没有执行,而当管理员访问页面后 payload 执行了。collaborator 捕捉的交互信息如下,request 内容。

请输入图片描述

response 内容(这里是两条信息,插入执行了一次,访问又执行了一次,而我们测试盲 xss 时,是只有一条,插入无法验证所以没有,管理员访问后执行所以一次,大家不要在意这里的细节,明白其原理和使用即可)。

请输入图片描述

以上就是 burp 的 collaborator 使用的一些简单的总结,理论上对于盲 sql 注入也应该可以行得通,但是我没有找到合适的例子,本机尝试也有一些错误,所以就不列了,如果碰到盲注的话可以先判断它是数字型还是字符型,随后再通过 and、or 这些关键字结合查询一下来判断,对于 collaborator 的话,官方说明文档说可以使用 sql 去查询 xml 文件,xml 引入外部实体也就是 payload url,然后看交互信息。

0x07:总结

对于平时测试中的一些盲问题,例如盲 xss,盲 xxe,盲 ssrf 等,如果不能看到一些回显信息,无法判断是否存在漏洞时,可以使用 burp 的 collaborator 来进行尝试。


                                                                                 公众号推荐:aFa攻防实验室

                         分享关于信息搜集、Web安全、内网安全、代码审计、红蓝对抗、Java、Python等方面的东西。

                                                                                  

</article>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jrockit_1.6下载_Oracle JRockit Mission Control 4.1发布

jrockit_1.6下载Oracle发布了以前的仅JRockit专用工具Mission Control Suite&#xff08;JRMC&#xff09;的新版本。 4.1版本是次要版本升级&#xff0c;直接遵循4.0.1&#xff08;该版本发布于2010年中期&#xff09;。 但是&#xff0c;即使版本号表明是次要的升级&#xff…

dnslog盲注原理

Dnslog盲注原理 布尔盲注和时间盲注相当于猜单词的游戏&#xff0c;我们需要对每一位逐步的猜测&#xff0c;效率很低&#xff0c;需要发送很多的请求进行判断&#xff0c;很可能会触发安全设备的防护 我们需要一种方式能够减少请求&#xff0c;直接回显数据——Dnslog注入 Dn…

[学习笔记]批次需求计划系统-简要

一、该系统的目的二、系统特色(1)来源根据 如上图(2)仅仅补充需求来源的最大值&#xff0c;避免料件多买而造成浪费(3)可透过[发放LRP工单]将生产计划发放成正式工单(4)可透过[发放LRP採购单]将採购计划发放成正式的请购单或者採购单(5)系统会记录计划的来源单据&#xff0c;方…

在浏览器控制台执行以下代码,输入的结果是()

在浏览器控制台执行以下代码,输入的结果是(A) A.4400 4401 4399 4400 B.4400 4401 4401 4402 C.4400 4400 4399 4400 D.4400 4401 4399 4402 E.4400 4401 4401 4400 解析 js在执行之前

iOS-心跳

转载于:https://www.cnblogs.com/zhuyaguang/p/4800703.html

google国内镜像网址收集

搞IT的遇到问题&#xff0c;光靠baidu有时真的解决不了问题&#xff0c;所以时不时的就需要求助google&#x1f602;&#xff0c; 里面有好多国外网友的博客、stackoverflow、github issues、官方文档等等的大量一手英文资料&#xff0c; 但是因为种种原因国家一直不放开Google…

mongo-express 远程代码执行漏洞(CVE-2019-10758)

前言 mongo-express是一款mongodb的第三方Web界面&#xff0c;使用node和express开发。如果攻击者可以成功登录&#xff0c;或者目标服务器没有修改默认的账号密码&#xff08;admin:pass&#xff09;&#xff0c;则可以执行任意node.js代码。 影响版本 mongo-express&#xff…

【转】深入浅出PageRank算法

原文链接 http://segmentfault.com/a/1190000000711128 PageRank算法 PageRank算法是谷歌曾经独步天下的“倚天剑”&#xff0c;该算法由Larry Page和Sergey Brin在斯坦福大学读研时发明的&#xff0c; 论文点击下载: The PageRank Citation Ranking: Bringing Order to the We…

https://blog.csdn.net/weixin_40412037/article/details/112235003

一、工具简介 说明&#xff1a; 这是一款基于主机的漏洞扫描工具&#xff0c;采用多线程确保可以快速的请求数据&#xff0c;采用线程锁可以在向sqlite数据库中写入数据避免database is locked的错误&#xff0c;采用md5哈希算法确保数据不重复插入。 本工具查找是否有公开e…

前端工程师能力评估测试题(2020最新版附答案及解析)

1.下列哪个样式定义后,内联(非块状)元素可以定义宽度和高度 (C) A.display:inline B.display:none C.display:block D.display:inherit 解析 2.css属性overflow属性定义溢出元素内容区的内容会如何处理。如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机…

Cobalt strike加载插件出现乱码

问题描述 插件 加载成功出现乱码 解决方法 在Cobalt strike目录下执行命令指定编码打开客户端解决。 java -Dfile.encodingutf-8 -XX:ParallelGCThreads4 -XX:AggressiveHeap -XX:UseParallelGC -Xms512M -Xmx1024M -jar cobaltstrike.jar1 成功解决

MariaDb数据库管理系统的学习(一)安装示意图

MariaDB数据库管理系统是MySQL的一个分支。主要由开源社区在维护&#xff0c;採用GPL授权许可。开发这个分支的原因之中的一个是&#xff1a;甲骨文公司收购了MySQL后&#xff0c;有将MySQL闭源的潜在风险&#xff0c;因此社区採用分支的方式来避开这个风险。 MariaDB的目的是全…

Ubuntu 安装msfconsole

Ubuntu 安装msfconsole 1.进入到opt目录下 cd /opt/1 2.下载安装文件 msfupdate.erb sudo wget https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb1 3.将文件msfupdate.erb重命名为msfinstal…

为什么需要多线程

对于这个问题可能很多朋友会说是为了高性能&#xff0c;个人觉得这是误解&#xff0c;多线程不等于高性能&#xff0c;从cpu&#xff08;单核&#xff09;的角度上看单线程才能带来最高性能。 对于单纯的运算任务来说一条线程依次执行到底肯定是最快速的&#xff08;因为线程间…

PhpMyAdmin后台getshell

PhpMyAdmin简介 PhpMyAdmin 是一个以PHP为基础&#xff0c;以Web-Base方式架构在网站主机上的MySQL的数据库管理工具&#xff0c;让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径&#xff0c;尤其要处理大量资料的汇入及汇出…

谷歌浏览器如何将繁体字设置成中文?

今天刚拿到公司发给我的电脑,这个电脑是戴尔的,不知道用了多少年啦,处理器是i3的,CPU8+50O还行,总体感觉一般,不卡顿,办公的地方网速跟蜗牛一样,整个电脑应该是重置过的或者重装了系统,作为开发下载常用的浏览器(谷歌、火狐、IE)、编译器、IM工具等还是很有必要的,…

红队技巧-域渗透的协议利用

1.pth(hash传递) 1.1 PTH简介 哈希传递(pth)攻击是指攻击者可以通过捕获密码的hash值(对应着密码的值),然后简单地将其传递来进行身份验证&#xff0c;以此来横向访问其他网络系统&#xff0c;攻击者无须通过解密hash值来获取明文密码&#xff0c;因为对于每个Session hash值都…

你这么喜欢敲代码,那么技术的乐趣在哪里?

在中国的技术圈子里,流行着这样一种说法:过了三十五岁,就一定得改行。在技术飞速发展的今天,只要稍不留神,就会掉下队来。因此,诸多技术工作者在仔细权衡利弊之后,终于还是决定跳离技术这个是非之地,将工作机会让给那些更青春更朝气的年轻一辈们。 当然,还是有相当一部…

Veil生成免杀payload 渗透win10 获取靶机shell

一&#xff1a;实验环境 两台机器处于同网段 攻击机&#xff1a;kali 192.168.115.134 靶机&#xff1a;win10 192.168.115.1 二&#xff1a;Veil下载、安装、使用 kali里默认没有安装Veil&#xff0c;我们通过命令行安装&#xff1a; apt-get update && apt-get inst…

微信公众平台消息接口开发 小黄鸡(小贱鸡)机器人 微信公众平台 公众号聊天机器人 ,消息,接口,小黄鸡,小贱鸡,机器人...

第一部分 基于模拟请求的方式 一、模拟请求数据 先看一下小黄鸡的网页版界面 我们通过模拟http请求来实现&#xff0c;上面对话抓包如下&#xff1a; 发送消息的包 接收消息的包&#xff1a; 根据上面的包&#xff0c;模拟发起请求如下&#xff1a; 二、与微信对接 小黄鸡还可以…